Submission #1186592

#TimeUsernameProblemLanguageResultExecution timeMemory
1186592MarwenElarbiTwo Dishes (JOI19_dishes)C++20
10 / 100
797 ms1114112 KiB
#include <bits/stdc++.h> using namespace std; int main() { int n,m; cin>>n>>m; vector<long long> a(n+1); vector<long long> s(n+1); vector<long long> p(n+1); vector<long long> b(m+1); vector<long long> t(m+1); vector<long long> q(m+1); vector<long long> pre(n+1,0); vector<long long> suf(m+1,0); for (int i = 1; i <= n; ++i) { cin>>a[i]>>s[i]>>p[i]; pre[i]=a[i]+pre[i-1]; } for (int i = 1; i <= m; ++i) { cin>>b[i]>>t[i]>>q[i]; suf[i]=b[i]+suf[i-1]; } long long dp[n+1][m+1]; memset(dp,0,sizeof dp); for (int i = 0; i <= n; ++i) { for (int j = 0; j <= m; ++j) { if(i==0&&j==0) continue; if(i>0){ if(pre[i]+suf[j] <= s[i]) dp[i][j]=max(dp[i][j],dp[i-1][j]+p[i]); else dp[i][j]=max(dp[i][j],dp[i-1][j]); } if(j>0){ if(pre[i]+suf[j] <= t[j]) dp[i][j]=max(dp[i][j],dp[i][j-1]+q[j]); else dp[i][j]=max(dp[i][j],dp[i][j-1]); } } } cout <<dp[n][m]<<endl; }
#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...