제출 #634523

#제출 시각아이디문제언어결과실행 시간메모리
634523Darren0724Team Contest (JOI22_team)C++17
27 / 100
556 ms8132 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define all(x) x.begin(),x.end() #define pii pair<int,int> #define rz resize #define pb emplace_back int INF=1e18; int mod=1e9+7; int N=4000; signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n;cin>>n; vector<int> a(n),b(n),c(n); vector<vector<pii>> v(N+1); for(int i=0;i<n;i++){ cin>>a[i]>>b[i]>>c[i]; v[a[i]].push_back({b[i],c[i]}); } vector<int> rec(N+2),rec1(N+2); int ans=-1; for(int i=1;i<=N;i++){ for(auto p:v[i]){ for(int j=p.first+1;j<=N;j++){ if(rec1[j]>p.second)ans=max(ans,i+j+rec1[j]); } } for(auto p:v[i]){ rec[p.first+1]=max(rec[p.first+1],p.second); } for(int j=2;j<=N;j++){ rec[j]=max(rec[j],rec[j-1]); } for(auto p:v[i]){ if(rec[p.first]>p.second){ rec1[p.first]=max(rec[p.first],rec1[p.first]); } } /*for(int j=N-1;j>0;j--){ rec1[j]=max(rec1[j],rec1[j+1]); } for(int j=1;j<=N;j++){ cout<<rec[j]<<' '; } cout<<endl; for(int j=1;j<=N;j++){ cout<<rec1[j]<<' '; } cout<<endl;*/ } cout<<ans<<endl; return 0; }
#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...