제출 #160760

#제출 시각아이디문제언어결과실행 시간메모리
160760Rouge_HugoCloud Computing (CEOI18_clo)C++14
0 / 100
9 ms1912 KiB
#include <bits/stdc++.h> using namespace std; int n,m; vector<pair<long long,pair<long long ,long long >>>v; const long long M=50*2001; long long d[2][M+10]; const long long inf=1e15; void solve() { long long last=0; for(long long i=0;i<M-1;i++)d[0][i]=-inf; d[0][0]=0; if (v[0].second.first>0)d[0][v[0].second.first]=v[0].second.second; for(long long i=1;i<n;i++) { for(long long j=0;j<M-1;j++) { d[i%2][j]=max(d[(i+1)%2][j],-inf); if (j+v[i].second.first>0&&d[(i+1)%2][j+v[i].second.first]>0) d[i%2][j]=max(d[i%2][j],d[(i+1)%2][j+v[i].second.first]+v[i].second.second); last=max(d[i%2][j],last); } } cout<< max(last,(long long)0) ; } int main() { cin>>n; long long x,y,z; for(long long i=0;i<n;i++) { cin>>x>>y>>z; v.push_back({y,{x,-z}}); } cin>>m; for(long long i=0;i<m;i++) { cin>>x>>y>>z; v.push_back({y,{-x,+z}}); } n+=m; sort(v.begin(),v.end()); reverse(v.begin(),v.end()); solve(); }
#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...