제출 #604700

#제출 시각아이디문제언어결과실행 시간메모리
604700uncriptedTeam Contest (JOI22_team)C++11
100 / 100
496 ms26496 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<pair<long long,long long>, int> > 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}, x}); vy.insert({{z, y}, x}); } 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++){ while(vx.size() && vy.size()){ if((*vx.rbegin()).s>=p[i].f){ vx.erase(--vx.end()); } else if((*vy.rbegin()).s>=p[i].f){ vy.erase(--vy.end()); } else if((*vx.rbegin()).f.f==(*vy.rbegin()).f.s && (*vx.rbegin()).f.s==(*vy.rbegin()).f.f){ auto it1=vx.end(); it1--; auto it2=vy.end(); it2--; vx.erase(it1); vy.erase(it2); }else{ break; } } if(!vx.size() || !vy.size()){ break; } if((*vx.rbegin()).f.f<=p[i].s.f || (*vy.rbegin()).f.f<=p[i].s.s ){ continue; } pas=max(pas, p[i].f+(*vx.rbegin()).f.f+(*vy.rbegin()).f.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...