이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
constexpr int inf = 1000000010;
#define rep(i,n) for (int i = 0; i < n; i++)
#define f first
#define s second
typedef pair<int,int> ii;
typedef pair<int,ii> pp;
ii x[150010],y[150010],z[150010];
int n,a[150010][3],xi,yi,zi;
int main(){
cin>>n;
rep(i,n){
cin>>x[i].f>>y[i].f>>z[i].f;
x[i].s=y[i].s=z[i].s=i;
a[i][0]=x[i].f;a[i][1]=y[i].f; a[i][2]=z[i].f;
}
sort(x,x+n,greater<ii>());
sort(y,y+n,greater<ii>());
sort(z,z+n,greater<ii>());
bool flag=true;
while(flag){
int Z=z[zi].f, Y=y[yi].f, X=x[xi].f;
if(a[x[xi].s][1]>=Y||a[x[xi].s][2]>=Z){
xi++;
if(xi>=n){
cout<<-1;
return 0;
}
continue;
}
if(a[y[yi].s][0]>=X||a[y[yi].s][2]>=Z){
yi++;
if(yi>=n){
cout<<-1;
return 0;
}
continue;
}
if(a[z[zi].s][1]>=Y||a[z[zi].s][0]>=X){
zi++;
if(zi>=n){
cout<<-1;
return 0;
}
continue;
}
flag=false;
}
cout<<z[zi].f+y[yi].f+x[xi].f;
}
# | 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... |