Submission #259388

#TimeUsernameProblemLanguageResultExecution timeMemory
259388keko37Two Dishes (JOI19_dishes)C++14
10 / 100
64 ms64888 KiB
#include<bits/stdc++.h> using namespace std; typedef long long llint; const int MAXN = 2005; int n, m; llint a[MAXN], b[MAXN], s[MAXN], t[MAXN], p[MAXN], q[MAXN]; llint suma[MAXN], sumb[MAXN]; llint dp[MAXN][MAXN]; llint calc (int i, int j) { if (dp[i][j] != -1) return dp[i][j]; llint res = 0; if (i <= n) res = max(res, calc(i + 1, j) + (suma[i] + sumb[j - 1] <= s[i]) * p[i]); if (j <= m) res = max(res, calc(i, j + 1) + (suma[i - 1] + sumb[j] <= t[j]) * q[j]); return dp[i][j] = res; } int main () { ios_base::sync_with_stdio(false); cin.tie(0); memset(dp, -1, sizeof dp); cin >> n >> m; for (int i = 1; i <= n; i++) { cin >> a[i] >> s[i] >> p[i]; suma[i] = suma[i - 1] + a[i]; } for (int i = 1; i <= m; i++) { cin >> b[i] >> t[i] >> q[i]; sumb[i] = sumb[i - 1] + b[i]; } cout << calc(1, 1); 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...
#Verdict Execution timeMemoryGrader output
Fetching results...