Submission #770363

#TimeUsernameProblemLanguageResultExecution timeMemory
770363ttamxTeam Contest (JOI22_team)C++14
37 / 100
2071 ms63284 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=150005; const int M=4005; int n,nx,ny,nz; int x[N],y[N],z[N]; vector<ll> px,py,pz; pair<int,int> vx[N],vy[N]; int dp[M][M]; ll ans=-1; int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n; for(int i=1;i<=n;i++){ cin >> x[i] >> y[i] >> z[i]; px.emplace_back(x[i]); py.emplace_back(y[i]); pz.emplace_back(z[i]); } px.emplace_back(-1e18); py.emplace_back(-1e18); pz.emplace_back(-1e18); sort(px.begin(),px.end()); sort(py.begin(),py.end()); sort(pz.begin(),pz.end()); px.erase(unique(px.begin(),px.end()),px.end()); py.erase(unique(py.begin(),py.end()),py.end()); pz.erase(unique(pz.begin(),pz.end()),pz.end()); nx=px.size()-1; ny=py.size()-1; nz=pz.size()-1; z[0]=nz+1; for(int i=1;i<=n;i++){ x[i]=lower_bound(px.begin(),px.end(),x[i])-px.begin(); y[i]=lower_bound(py.begin(),py.end(),y[i])-py.begin(); z[i]=lower_bound(pz.begin(),pz.end(),z[i])-pz.begin(); dp[x[i]][y[i]]=max(dp[x[i]][y[i]],z[i]); } for(int i=1;i<=nx;i++){ for(int j=1;j<=ny;j++){ dp[i][j]=max({dp[i][j],dp[i-1][j],dp[i][j-1]}); } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(x[i]<=x[j]||y[i]>=y[j])continue; int res=dp[x[i]-1][y[j]-1]; if(res>max(z[i],z[j]))ans=max(ans,px[x[i]]+py[y[j]]+pz[res]); } } cout << ans; }
#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...