제출 #770353

#제출 시각아이디문제언어결과실행 시간메모리
770353ttamxTeam Contest (JOI22_team)C++14
0 / 100
36 ms6124 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]); if(z[i]<z[vx[x[i]].second])vx[x[i]].second=i; if(z[vx[x[i]].second]<z[vx[x[i]].first])swap(vx[x[i]].first,vx[x[i]].second); if(z[i]<z[vy[y[i]].second])vy[y[i]].second=i; if(z[vy[y[i]].second]<z[vy[y[i]].first])swap(vy[y[i]].first,vy[y[i]].second); } 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]}); if(vx[i].first!=vy[j].second){ int res=max(z[vx[i].first],z[vy[j].first]); if(dp[i-1][j-1]>res)ans=max(ans,px[i]+py[j]+pz[dp[i-1][j-1]]); }else{ int res=max(z[vx[i].first],z[vy[j].second]); if(dp[i-1][j-1]>res)ans=max(ans,px[i]+py[j]+pz[dp[i-1][j-1]]); res=max(z[vx[i].second],z[vy[j].first]); if(dp[i-1][j-1]>res)ans=max(ans,px[i]+py[j]+pz[dp[i-1][j-1]]); } } } 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...