# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
563552 | clarence | Team Contest (JOI22_team) | C++17 | 122 ms | 7604 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <cstdio>
#include <algorithm>
using namespace std;
int N;
int X[150010];
int Y[150010];
int Z[150010];
int SX[150010];
int SY[150010];
int SZ[150010];
bool cmpX(int a, int b) {
return X[a]<X[b];
}
bool cmpY(int a, int b) {
return Y[a]<Y[b];
}
bool cmpZ(int a, int b) {
return Z[a]<Z[b];
}
int main(void) {
scanf("%d", &N);
for (int i=0;i<N;i++) {
scanf("%d%d%d", &X[i], &Y[i], &Z[i]);
SX[i] = SY[i] = SZ[i] = i;
}
sort(SX, SX+N, cmpX);
sort(SY, SY+N, cmpY);
sort(SZ, SZ+N, cmpZ);
int curX = N-1;
int curY = N-1;
int curZ = N-1;
while (curX >= 0 && curY >= 0 && curZ >= 0) {
int x = SX[curX];
int y = SY[curY];
int z = SZ[curZ];
if (X[y] >= X[x]) { curY--; continue; }
if (X[z] >= X[x]) { curZ--; continue; }
if (Y[x] >= Y[y]) { curX--; continue; }
if (Y[z] >= Y[y]) { curZ--; continue; }
if (Z[x] >= Z[z]) { curX--; continue; }
if (Z[y] >= Z[z]) { curY--; continue; }
printf("%d\n", X[x]+Y[y]+Z[z]);
return 0;
}
printf("-1\n");
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |