Submission #604549

#TimeUsernameProblemLanguageResultExecution timeMemory
604549uncriptedTeam Contest (JOI22_team)C++11
0 / 100
199 ms23400 KiB
#include<bits/stdc++.h> #define f first #define s second #define pb push_back using namespace std; int main(){ long long n; cin>>n; pair<long long, pair<long long,long long> > p[n+1]; multiset<pair<long long,long long> > vx,vy; for(long long i=1; i<=n; i++){ long long x,y,z; cin>>x>>y>>z; p[i]={x, {y,z}}; vx.insert({y, z}); vy.insert({z, y}); } sort(p+1, p+n+1, greater<pair<long long, pair<long long,long long> > >() ); long long pas=-1; for(long long i=1; i<=n; i++){ if(vx.find({p[i].s.f, p[i].s.s})!=vx.end()){ vx.erase(vx.find({p[i].s.f, p[i].s.s})); } if(vy.find({p[i].s.s, p[i].s.f})!=vy.end()){ vy.erase(vy.find({p[i].s.s, p[i].s.f})); } while( (*vx.rbegin()).f==(*vy.rbegin()).s && (*vx.rbegin()).s==(*vy.rbegin()).f){ vx.erase(--vx.end()); vy.erase(--vy.end()); if(!vx.size() || !vy.size()){ break; } } // cout<<"y"; if(!vx.size() || !vy.size()){ break; } // cout<<"z"; if((*vx.rbegin()).f<=p[i].s.f || (*vy.rbegin()).f<=p[i].s.s ){ continue; } pas=max(pas, p[i].f+(*vx.rbegin()).f+(*vy.rbegin()).f); } cout<<pas; }
#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...