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 <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... |