Pagini recente »
Diferențe pentru runda/oji-2023-antrenament-ffa între reviziile 13 și 12
|
Cod sursă (job #678362)
|
Monitorul de evaluare
|
Diferențe pentru runda/oji-2023-antrenament-ffa între reviziile 11 și 12
|
Cod sursă (job #678405)
Cod sursă (job
#678405)
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
bool cmp(vector<int> a, vector<int> b) {
int mn1 = a[0], mn2 = b[0];
for(int i = 1; i < 4; i++) {
mn1 = min(a[i], mn1);
mn2 = min(b[i], mn2);
}
return mn1 < mn2;
}
const int mxN = 3*1e3+10;
bool vis[mxN];
int main()
{
freopen("canibali.in", "r", stdin);
freopen("canibali.out", "w", stdout);
int n;
cin >> n;
vector<vector<int>> v;
for(int i = 0; i < n; i++) {
int a, b, c, d;
cin >> a >> b >> c >> d;
vector<int> elem = {a, b, c, d};
v.push_back(elem);
}
sort(v.begin(), v.end(), cmp);
ll ans = 0;
for(int i = 0; i < n; i++) {
int counter = 0;
for(int j = i-1; j >= 0; j--) {
if(vis[j]) continue;
if(counter==2) break;
int counter1 = 0;
for(int k = 0; k < 4; k++) {
if(v[i][k] >= v[j][k]) {
counter1++;
}
}
if(counter1 == 4) {
counter++;
ans++;
vis[j] = true;
}
}
}
cout << (n-ans);
}