이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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 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... |