Submission #1244162

#TimeUsernameProblemLanguageResultExecution timeMemory
1244162m5588ohammedTeam Contest (JOI22_team)C++20
0 / 100
81 ms6992 KiB
#include <bits/stdc++.h> #define endl "\n" #define mod 1000000007 using namespace std; #define int long long const int N=(1<<19); int Tree[N*2+5],valY[301],ansY[301]; int n,inf=3e10; array <int,3> arr[150001]; int calc(){ for(int i=0;i<=300;i++) ansY[i]=valY[i]=-inf; vector <array<int,2>> v[301]; for(int i=1;i<=n;i++){ v[arr[i][0]].push_back({arr[i][1],arr[i][2]}); } int mx=-1; for(int x=0;x<=300;x++){ for(auto [Yc,Zc]:v[x]){ for(int Y=Yc+1;Y<=300;Y++){ if(ansY[Y]>Zc) mx=max(mx,ansY[Y]+Y+x); } } for(auto [Yc,Zc]:v[x]){ valY[Yc]=max(valY[Yc],Zc); for(int Y=Yc-1;Y>=0;Y--){ ansY[Yc]=max(ansY[Yc],valY[Y]); } } } return mx; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>n; for(int i=1;i<=n;i++){ cin>>arr[i][0]>>arr[i][1]>>arr[i][2]; } int ans1=calc(); for(int i=1;i<=n;i++) swap(arr[i][1],arr[i][2]); cout<<max(ans1,calc()); }
#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...