Submission #1183525

#TimeUsernameProblemLanguageResultExecution timeMemory
1183525amine_arouaTwo Dishes (JOI19_dishes)C++20
10 / 100
799 ms1114112 KiB
#include<bits/stdc++.h> using namespace std; #define int long long const int INF = 3e18; signed main() { int n , m; cin>>n>>m; vector<int> a(n + 1) , s(n + 1) , p(n + 1) , b(m + 1) , t(m + 1) , q(m + 1) , f(n + 1) , g(m + 1); for(int i = 1 ; i <= n ; i++) { cin>>a[i]>>s[i]>>p[i]; f[i] = a[i] + f[i - 1]; } for(int i = 1 ; i <= m ; i++) { cin>>b[i]>>t[i]>>q[i]; g[i] = b[i] + g[i - 1]; } vector<vector<int>> dp(n + 1 , vector<int>(m + 1 , -INF)); dp[0][0] = 0; for(int i = 0 ; i <= n ; i++) { for(int j = 0 ; j <= m ; j++) { if(i >= 1) { dp[i][j] = max(dp[i][j] , dp[i - 1][j] + ((f[i] + g[j]) <= s[i] ? p[i] : 0ll)); } if(j >= 1) { dp[i][j] = max(dp[i][j] , dp[i][j - 1] + ((f[i] + g[j]) <= t[j] ? q[j] : 0ll)); } } } 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...