Submission #1171038

#TimeUsernameProblemLanguageResultExecution timeMemory
1171038mbkTwo Dishes (JOI19_dishes)C++20
10 / 100
2455 ms73832 KiB
#include<bits/stdc++.h> using namespace std; long long n,m; constexpr long long ML=1e18; constexpr long long MN=2e3+20; struct danie { long long cza; long long lim; long long pun; }; long long DP[MN][MN]; long long akczas[MN][MN]; int main() { cin>>n>>m; vector<danie> vea,veb; for(int i=0; i<n; i++) { danie he; cin>>he.cza>>he.lim>>he.pun; vea.push_back(he); } for(int i=0; i<m; i++) { danie he; cin>>he.cza>>he.lim>>he.pun; veb.push_back(he); } for(int i=0; i<MN; i++) fill(DP[i],DP[i]+MN,-ML); DP[0][0]=0; for(int i=0; i<n+1; i++) { for(int j=0; j<m+1; j++) { if(i!=0) { akczas[i][j]=akczas[i-1][j]+vea[i-1].cza; long long tim=akczas[i][j]; long long ost=DP[i-1][j]; if(tim<=vea[i-1].lim) ost+=vea[i-1].pun; DP[i][j]=max(DP[i][j],ost); } if(j!=0) { akczas[i][j]=akczas[i][j-1]+veb[j-1].cza; long long tim=akczas[i][j]; long long ost=DP[i][j-1]; if(tim<=veb[j-1].lim) ost+=veb[j-1].pun; DP[i][j]=max(DP[i][j],ost); } } } cout<<DP[n][m]<<"\n"; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...