제출 #1370360

#제출 시각아이디문제언어결과실행 시간메모리
1370360pirmyratgTeam Contest (JOI22_team)C++20
100 / 100
66 ms12340 KiB
#include "bits/stdc++.h"
using namespace std;
#define mod 998244353
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define N 24
#define maxn 600005
#define INF (ll)1e18

ll n;
pair<ll,pair<ll,ll> > p[maxn];
vector<pair<ll,ll> > a,b,c;
ll used[maxn];

void solve(){
	cin>>n;
	for(ll i=1; i<=n; i++)cin>>p[i].ff>>p[i].ss.ff>>p[i].ss.ss;
	for(ll i=1; i<=n; i++){
		a.pb({p[i].ff,i});
		b.pb({p[i].ss.ff,i});
		c.pb({p[i].ss.ss,i});
	}
	sort(a.begin(),a.end(),greater<pair<ll,ll> >());
	sort(b.begin(),b.end(),greater<pair<ll,ll> >());
	sort(c.begin(),c.end(),greater<pair<ll,ll> >());
	ll i=0,j=0,x=0;
	while(i<n and j<n and x<n){
		ll id=a[i].ss,id1=b[j].ss,id2=c[x].ss;
		if(used[id])i++;
		else if(used[id1])j++;
		else if(used[id2])x++;
		else if(p[id].ss.ff>=p[id1].ss.ff or p[id].ss.ss>=p[id2].ss.ss)used[id]=1;
		else if(p[id1].ff>=p[id].ff or p[id1].ss.ss>=p[id2].ss.ss)used[id1]=1;
		else if(p[id2].ff>=p[id].ff or p[id2].ss.ff>=p[id1].ss.ff)used[id2]=1;
		else{
			cout<<p[id].ff+p[id1].ss.ff+p[id2].ss.ss<<'\n';
			return;
		}
	}
	cout<<-1<<'\n';
}
 
int main(){
	// freopen("in.txt","w",stdout);
	// freopen("out.txt","r",stdin);
	ios_base::sync_with_stdio(0); cin.tie(0);
	ll t=1;
	// cin>>t;
	while(t--) solve();
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…