#include <bits/stdc++.h>
#define pb push_back
#define int long long
#define endl '\n'
using namespace std;
const int N=2e5+5,inf=2e8,MOD=1e9+9;
struct info{
int x,y,z,id;
friend bool operator<(info a,info b){
return a.x<b.x;
}
};
signed main(){
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n; cin>>n;
vector<info> x,y,z;
for(int i=0;i<n;i++){
int a,b,c; cin>>a>>b>>c;
x.pb({a,b,c,i});
y.pb({b,a,c,i});
z.pb({c,a,b,i});
}
sort(x.begin(),x.end());
sort(y.begin(),y.end());
sort(z.begin(),z.end());
int l1=n-1,l2=n-1,l3=n-1;
while(l1>=0 || l2>=0 || l3>=0){
// cout<<x[l1].id<<' '<<y[l2].id<<' '<<z[l3].id<<endl;
if(x[l1].id==y[l2].id || x[l1].id==z[l3].id){
if(x[l1].id==y[l2].id)l2--;
if(x[l1].id==z[l3].id) l3--;
l1--;
continue;
}
if(y[l2].id==z[l3].id){
l2--;
l3--;
continue;
}
int mx=x[l1].x,my=y[l2].x,mz=z[l3].x;
if(x[l1].y==my || x[l1].z==mz){
l1--;
continue;
}
if(y[l2].y==mx || y[l2].z==mz){
l2--;
continue;
}
if(z[l3].y==mx || z[l3].z==my){
l3--;
continue;
}
cout<<mx+my+mz;
return 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... |