#include "bits/stdc++.h"
#define F first
#define S second
#define ll long long
#define pii pair<ll,ll>
const ll mxN = 3e5 + 5;
const ll mod = 1e9 + 7;
using namespace std;
struct player{
ll x,y,z,id;
};
bool cmpx(player a, player b){
return make_pair(a.x,a.id) < make_pair(b.x,b.id);
}
bool cmpy(player a, player b){
return make_pair(a.y,a.id) < make_pair(b.y,b.id);
}
bool cmpz(player a, player b){
return make_pair(a.z,a.id) < make_pair(b.z,b.id);
}
player calc(player a, player b,player c){
if(a.y >= b.y) return a;
if(a.z >= c.z) return a;
if(b.x >= a.x) return b;
if(b.z >= c.z) return b;
if(c.x >= a.x) return c;
if(c.y >= b.y) return c;
return {0,0,0,0};
}
player a[mxN],b[mxN],c[mxN];
signed main(){
ll n;
cin >>n;
ll N;
for(ll i = 1;i <= n;i++){
cin >>a[i].x>> a[i].y>> a[i].z;
a[i].id = i;
b[i] = c[i] = a[i];
// N = max({a[i].x,a[i].y,a[i].z,N});
}
sort(a + 1,a + n + 1,cmpx);
sort(b + 1,b + n + 1,cmpy);
sort(c + 1,c + n + 1,cmpz);
int i = n,j = n,k = n;
while(i && j && k){
while(a[i].id == 0) i--;
while(b[j].id == 0) j--;
while(c[k].id == 0) k--;
// cout<<"A "<<i<<": "<<a[i].x<<' '<<a[i].y<<' '<<a[i].z<<' '<<a[i].id<<'\n';
// cout<<"B "<<j<<": "<<b[j].x<<' '<<b[j].y<<' '<<b[j].z<<' '<<b[j].id<<'\n';
// cout<<"C "<<k<<": "<<c[k].x<<' '<<c[k].y<<' '<<c[k].z<<' '<<c[k].id<<'\n';
if(!i || !j || !k) break;
auto x = calc(a[i],b[j],c[k]);
if(x.id == 0){
cout<<a[i].x + b[j].y + c[k].z;
return 0;
}
a[lower_bound(a + 1,a + n + 1,x,cmpx) - a] = {0,0,0,0};
b[lower_bound(b + 1,b + n + 1,x,cmpy) - b] = {0,0,0,0};
c[lower_bound(c + 1,c + n + 1,x,cmpz) - c] = {0,0,0,0};
}
cout<<-1;
}
# | 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... |