제출 #696904

#제출 시각아이디문제언어결과실행 시간메모리
696904feilinlpTeam Contest (JOI22_team)C++17
100 / 100
106 ms9640 KiB
#include <cstdio> #include <algorithm> #include <utility> #define f first #define s second using namespace std; bool comp (pair <int, int> a, pair <int, int> b) { return a.f > b.f; } int main() { int n; scanf("%d", &n); pair <int, int> x[n], y[n], z[n]; int orix[n], oriy[n], oriz[n]; bool eliminated[n]; for (int i=0; i<n; i++) { scanf("%d %d %d", &orix[i], &oriy[i], &oriz[i]); x[i].f=orix[i]; y[i].f=oriy[i]; z[i].f=oriz[i]; x[i].s=i; y[i].s=i; z[i].s=i; eliminated[i]=false; } sort(x, x+n, comp); sort(y, y+n, comp); sort(z, z+n, comp); int posx=0, posy=0, posz=0, ans=-1; while (posx < n && posy < n && posz < n) { if (x[posx].s==y[posy].s && x[posx].s==z[posz].s) { eliminated[x[posx].s]=true; posx++; posy++; posz++; } if (x[posx].s==y[posy].s) { eliminated[x[posx].s]=true; posx++; posy++; } else if (x[posx].s==z[posz].s) { eliminated[x[posx].s]=true; posx++; posz++; } else if (z[posz].s==y[posy].s) { eliminated[y[posy].s]=true; } else if (!eliminated[x[posx].s] && !eliminated[y[posy].s] && !eliminated[z[posz].s]) { if (oriy[x[posx].s] >= y[posy].f || oriz[x[posx].s] >= z[posz].f) posx++; else if (orix[y[posy].s] >= x[posx].f || oriz[y[posy].s] >= z[posz].f) posy++; else if (oriy[z[posz].s] >= y[posy].f || orix[z[posz].s] >= x[posx].f) posz++; else { ans=x[posx].f + y[posy].f + z[posz].f; break; } } while (posx < n && eliminated[x[posx].s]) posx++; while (posy < n && eliminated[y[posy].s]) posy++; while (posz < n && eliminated[z[posz].s]) posz++; } printf("%d\n", ans); }

컴파일 시 표준 에러 (stderr) 메시지

team.cpp: In function 'int main()':
team.cpp:17:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |     scanf("%d", &n);
      |     ~~~~~^~~~~~~~~~
team.cpp:23:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   23 |         scanf("%d %d %d", &orix[i], &oriy[i], &oriz[i]);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...