Submission #719693

#TimeUsernameProblemLanguageResultExecution timeMemory
719693lamTeam Contest (JOI22_team)C++14
0 / 100
1 ms340 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int maxn = 1e5 + 5e4 + 10; typedef pair<int,int> ii; typedef pair<int,ii> iii; #define ff first #define ss second int n; iii a[maxn]; vector <iii> d; map<ii,bool> mp; int mmin[maxn],mmax[maxn]; void add(iii x) { int y = x.ss.ff; for (int i=y+1; i<=300; i++) mmax[i]=max(mmax[i],x.ss.ss); mmin[y]=min(mmin[y],x.ss.ss); } int query(iii x) { int y=x.ss.ff; int ans=-1; for (int i=y+1; i<=300; i++) if (mmin[i]!=1e9&&mmax[i-1]!=-1e9&&mmax[i-1]>mmin[i]&&mmax[i-1]>x.ss.ss) ans=max(ans,mmax[i-1]+i+x.ff); return ans; } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin>>n; for (int i=1; i<=n; i++) cin>>a[i].ff>>a[i].ss.ff>>a[i].ss.ss; for (int i=0; i<=4000; i++) mmin[i] = 1e9, mmax[i]=-1e9; sort(a+1,a+n+1); d.clear(); int l,r; int ans=-1; for (int i=1; i<=n; i++) { if (i==1||a[i].ff!=a[i-1].ff) l=i; if (i==n||a[i].ff!=a[i+1].ff) { r=i; for (int j=l; j<=r; j++) ans=max(ans,query(a[j])); for (int j=l; j<=r; j++) add(a[j]); } } cout<<ans<<'\n'; }
#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...