This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define int long long
using namespace std;
#define debug(args...) kout("[ " + string(#args) + " ]", args)
void kout() { cerr << endl; }
template <class T, class ...U> void kout(T a, U ...b) { cerr << a << ' ',kout(b...); }
template <class T> void pary(T L, T R) { while (L != R) cerr << *L << " \n"[++L==R]; }
const int MAXN = 2000;
int n, m;
int a[MAXN+1], b[MAXN+1];
int s[MAXN+1], t[MAXN+1];
int p[MAXN+1], q[MAXN+1];
int ti[MAXN+1][MAXN+1];
int dp[MAXN+1][MAXN+1];
signed main() {
ios_base::sync_with_stdio(0), cin.tie(0);
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> a[i] >> s[i] >> p[i];
ti[i][0] = ti[i-1][0] + a[i];
}
for (int i = 1; i <= m; i++) {
cin >> b[i] >> t[i] >> q[i];
}
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= m; j++) {
if (j) ti[i][j] = ti[i][j-1] + b[j];
dp[i][j] = max((i?dp[i-1][j]:0) + (ti[i][j] <= s[i]) * p[i],
(j?dp[i][j-1]:0) + (ti[i][j] <= t[j]) * q[j]);
}
}
cout << dp[n][m] << '\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |