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>
#define pb push_back
#define fi first
#define se second
using namespace std;
typedef long long ll;
const int maxn=2e5+5;
struct beaver{
ll x,y,z;
}B[maxn];
pair<ll,int>X[maxn];
pair<ll,int>Y[maxn];
pair<ll,int>Z[maxn];
int n;
signed main(){
cin.tie(0),cout.tie(0)->sync_with_stdio(0);
// freopen("input.inp","r",stdin);
// freopen("output.out","w",stdout);
cin >> n;
for(int i=1;i<=n;i++){
cin >> B[i].x >> B[i].y >> B[i].z;
X[i]={B[i].x,i};
Y[i]={B[i].y,i};
Z[i]={B[i].z,i};
}
sort(X+1,X+1+n);
sort(Y+1,Y+1+n);
sort(Z+1,Z+1+n);
int ptrx=n;
int ptry=n;
int ptrz=n;
ll ans=-1;
while(ptrx>0 && ptry>0 && ptrz>0){
if((B[X[ptrx].se].y >= Y[ptry].fi) || (B[X[ptrx].se].z >= Z[ptrz].fi) ){
ptrx--;
}
else if((B[Y[ptry].se].x >= X[ptrx].fi) || (B[Y[ptry].se].z >= Z[ptrz].fi)){
ptry--;
}
else if((B[Z[ptrz].se].y >= Y[ptry].fi) || (B[Z[ptrz].se].x >= X[ptrx].fi)){
ptrz--;
}
else{
ans=X[ptrx].fi+Y[ptry].fi + Z[ptrz].fi;
break;
}
}
cout << ans << "\n";
}
# | 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... |