이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
const int maxn=150000+10;
int all[maxn][3],f,n,i,j,h,vis[maxn];
vector<int>a,b,c;
bool cmp(int a,int b){
	return all[a][f]>all[b][f];
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>all[i][0]>>all[i][1]>>all[i][2];
		a.push_back(i);
	}
	b=c=a;
	sort(a.begin(),a.end(),cmp);
	f=1;
	sort(b.begin(),b.end(),cmp);
	f=2;
	sort(c.begin(),c.end(),cmp);
	while(i<n&&j<n&&h<n){
		if(vis[a[i]]==1)
			i++;
		else if(vis[b[j]]==1)
			j++;
		else if(vis[c[h]]==1)
			h++;
		else if(all[a[i]][1]==all[b[j]][1]||all[a[i]][2]==all[c[h]][2]){
			vis[a[i]]=1;
			i++;
		}
		else if(all[b[j]][0]==all[a[i]][0]||all[b[j]][2]==all[c[h]][2]){
			vis[b[j]]=1;
			j++;
		}
		else if(all[c[h]][0]==all[a[i]][0]||all[c[h]][1]==all[b[j]][1]){
			vis[c[h]]=1;
			h++;
		}
		else{
			cout<<all[a[i]][0]+all[b[j]][1]+all[c[h]][2]<<"\n";
			return 0;
		}
	}
	cout<<-1<<"\n";
	return 0;
}
| # | 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... |