Submission #897874

#TimeUsernameProblemLanguageResultExecution timeMemory
897874alexander707070Team Contest (JOI22_team)C++14
100 / 100
169 ms8164 KiB
#include<bits/stdc++.h> #define MAXN 150007 using namespace std; int n; int a[MAXN],b[MAXN],c[MAXN]; int sa[MAXN],sb[MAXN],sc[MAXN],pta,ptb,ptc; bool bad[MAXN]; bool cmpa(int x,int y){ return a[x]<a[y]; } bool cmpb(int x,int y){ return b[x]<b[y]; } bool cmpc(int x,int y){ return c[x]<c[y]; } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]>>b[i]>>c[i]; sa[i]=sb[i]=sc[i]=i; } sort(sa+1,sa+n+1,cmpa); sort(sb+1,sb+n+1,cmpb); sort(sc+1,sc+n+1,cmpc); pta=ptb=ptc=n; while(pta>=1 and ptb>=1 and ptc>=1){ if(b[sa[pta]]==b[sb[ptb]] or c[sa[pta]]==c[sc[ptc]]){ bad[sa[pta]]=true; pta--; }else if(a[sb[ptb]]==a[sa[pta]] or c[sb[ptb]]==c[sc[ptc]]){ bad[sb[ptb]]=true; ptb--; }else if(b[sb[ptb]]==b[sc[ptc]] or a[sa[pta]]==a[sc[ptc]]){ bad[sc[ptc]]=true; ptc--; }else break; while(bad[sa[pta]])pta--; while(bad[sb[ptb]])ptb--; while(bad[sc[ptc]])ptc--; } if(pta==0 or ptb==0 or ptc==0){ cout<<"-1\n"; }else{ cout<<a[sa[pta]]+b[sb[ptb]]+c[sc[ptc]]<<"\n"; } return 0; }
#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...