/**
/> フ
| _ _|
/`ミ _x 彡
/ |
/ ヽ |
/ ̄| | | |
| ( ̄ヽ__ヽ_)_)
\二つ
**/
#include<bits/stdc++.h>
#define ll long long
#define pii pair<int, int>
#define fi first
#define se second
#define Pt Point
#define ALL(v) v.begin(), v.end()
#define pb push_back
#define MP make_pair
#define MT make_tuple
#define typeT tuple<int, int, int>
#define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; i++)
#define FOD(i, a, b) for (int i = (a), _b = (b); i >= _b; i--)
#define MASK(i) (1 << (i))
#define BIT(k, i) (((k) >> (i)) & 1)
const int N = 2e3 + 5;
const int M = 1e5;
using namespace std;
int n, m;
ll dp[M + 5];
struct Computer {
int c, f, v;
bool operator < (const Computer &other) const {
return f > other.f;
}
} a[N];
bool Maximize(ll &a, ll b) {
if (a < b) {
a = b;
return true;
}
return false;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
#define task "a"
//freopen(task".inp", "r", stdin);
//freopen(task".out", "w", stdout);
cin >> n;
FOR(i, 1, n) {
int c, f, v; cin >> c >> f >> v;
a[i] = {c, f, -v};
}
cin >> m;
FOR(i, 1, m) {
int c, f, v; cin >> c >> f >> v;
a[++n] = {-c, f, v};
}
sort(a + 1, a + 1 + n);
memset(dp, -0x3f, sizeof dp);
dp[0] = 0;
FOR(i, 1, n) {
int c = a[i].c, v = a[i].v;
if (c > 0) {
FOD(j, M - c, 0) Maximize(dp[j + c], dp[j] + v);
} else FOR(j, -c, M) Maximize(dp[j + c], dp[j] + v);
}
ll res = 0;
FOR(j, 0, M) Maximize(res, dp[j]);
cout << res;
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
1112 KB |
Output is correct |
2 |
Correct |
1 ms |
1116 KB |
Output is correct |
3 |
Correct |
9 ms |
1116 KB |
Output is correct |
4 |
Correct |
17 ms |
1116 KB |
Output is correct |
5 |
Correct |
151 ms |
1116 KB |
Output is correct |
6 |
Correct |
165 ms |
1280 KB |
Output is correct |
7 |
Incorrect |
153 ms |
1288 KB |
Output isn't correct |
8 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
1116 KB |
Output is correct |
2 |
Correct |
1 ms |
1112 KB |
Output is correct |
3 |
Correct |
10 ms |
1116 KB |
Output is correct |
4 |
Correct |
10 ms |
1116 KB |
Output is correct |
5 |
Correct |
85 ms |
1116 KB |
Output is correct |
6 |
Correct |
85 ms |
1116 KB |
Output is correct |
7 |
Incorrect |
186 ms |
1292 KB |
Output isn't correct |
8 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
4 ms |
1112 KB |
Output is correct |
2 |
Correct |
5 ms |
1116 KB |
Output is correct |
3 |
Correct |
16 ms |
1116 KB |
Output is correct |
4 |
Correct |
16 ms |
1116 KB |
Output is correct |
5 |
Correct |
32 ms |
1508 KB |
Output is correct |
6 |
Correct |
33 ms |
1116 KB |
Output is correct |
7 |
Correct |
43 ms |
1112 KB |
Output is correct |
8 |
Correct |
43 ms |
1116 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
1116 KB |
Output is correct |
2 |
Correct |
2 ms |
1116 KB |
Output is correct |
3 |
Correct |
140 ms |
1248 KB |
Output is correct |
4 |
Incorrect |
147 ms |
1256 KB |
Output isn't correct |
5 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
1112 KB |
Output is correct |
2 |
Correct |
14 ms |
1244 KB |
Output is correct |
3 |
Correct |
90 ms |
1236 KB |
Output is correct |
4 |
Correct |
173 ms |
1116 KB |
Output is correct |
5 |
Incorrect |
322 ms |
1296 KB |
Output isn't correct |
6 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
1112 KB |
Output is correct |
2 |
Correct |
1 ms |
1116 KB |
Output is correct |
3 |
Correct |
9 ms |
1116 KB |
Output is correct |
4 |
Correct |
17 ms |
1116 KB |
Output is correct |
5 |
Correct |
151 ms |
1116 KB |
Output is correct |
6 |
Correct |
165 ms |
1280 KB |
Output is correct |
7 |
Incorrect |
153 ms |
1288 KB |
Output isn't correct |
8 |
Halted |
0 ms |
0 KB |
- |