Submission #698034

#TimeUsernameProblemLanguageResultExecution timeMemory
698034safaricolaTeam Contest (JOI22_team)C++17
100 / 100
198 ms9556 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...