#include <bits/stdc++.h>
using namespace std;
#define all(x) x.begin(), x.end()
#define ar array
#define pb push_back
#define ln '\n'
#define int long long
using i64 = long long;
template <class F, class _S>
bool chmin(F &u, const _S &v){
bool flag = false;
if ( u > v ){
u = v; flag |= true;
}
return flag;
}
template <class F, class _S>
bool chmax(F &u, const _S &v){
bool flag = false;
if ( u < v ){
u = v; flag |= true;
}
return flag;
}
const int N = 1e4 + 1;
const int inf = 1e16;
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n; cin >> n;
vector <ar<int,4>> a;
for ( int i = 0; i < n; i++ ){
int c, f, v; cin >> c >> f >> v;
a.pb({f, 1, c, v});
}
int m; cin >> m;
for ( int i = 0; i < m; i++ ){
int c, f, v; cin >> c >> f >> v;
a.pb({f, 0, c, v});
}
sort(all(a));
reverse(all(a));
vector <int> dp(N, -inf);
dp[0] = 0;
for ( auto &[f, t, c, v]: a ){
if ( t == 0 ){ // customer
for ( int j = c; j < N; j++ ){
chmax(dp[j - c], dp[j] + v);
}
} else{
for ( int j = N - 1; j >= 0; j-- ){
chmax(dp[min(N - 1, j + c)], dp[j] - v);
}
}
}
cout << *max_element(all(dp));
cout << '\n';
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
1 ms |
540 KB |
Output is correct |
4 |
Correct |
3 ms |
348 KB |
Output is correct |
5 |
Correct |
18 ms |
604 KB |
Output is correct |
6 |
Correct |
18 ms |
708 KB |
Output is correct |
7 |
Correct |
18 ms |
600 KB |
Output is correct |
8 |
Correct |
22 ms |
604 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
2 ms |
348 KB |
Output is correct |
4 |
Correct |
2 ms |
348 KB |
Output is correct |
5 |
Correct |
12 ms |
604 KB |
Output is correct |
6 |
Correct |
12 ms |
476 KB |
Output is correct |
7 |
Correct |
31 ms |
604 KB |
Output is correct |
8 |
Correct |
26 ms |
600 KB |
Output is correct |
9 |
Correct |
26 ms |
600 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
2 |
Correct |
1 ms |
344 KB |
Output is correct |
3 |
Correct |
3 ms |
348 KB |
Output is correct |
4 |
Correct |
3 ms |
560 KB |
Output is correct |
5 |
Correct |
5 ms |
348 KB |
Output is correct |
6 |
Correct |
5 ms |
580 KB |
Output is correct |
7 |
Correct |
6 ms |
348 KB |
Output is correct |
8 |
Correct |
6 ms |
464 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
344 KB |
Output is correct |
3 |
Correct |
19 ms |
672 KB |
Output is correct |
4 |
Correct |
19 ms |
604 KB |
Output is correct |
5 |
Incorrect |
43 ms |
604 KB |
Output isn't correct |
6 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
2 |
Correct |
2 ms |
348 KB |
Output is correct |
3 |
Correct |
11 ms |
604 KB |
Output is correct |
4 |
Correct |
22 ms |
604 KB |
Output is correct |
5 |
Correct |
44 ms |
600 KB |
Output is correct |
6 |
Incorrect |
49 ms |
720 KB |
Output isn't correct |
7 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
1 ms |
540 KB |
Output is correct |
4 |
Correct |
3 ms |
348 KB |
Output is correct |
5 |
Correct |
18 ms |
604 KB |
Output is correct |
6 |
Correct |
18 ms |
708 KB |
Output is correct |
7 |
Correct |
18 ms |
600 KB |
Output is correct |
8 |
Correct |
22 ms |
604 KB |
Output is correct |
9 |
Correct |
0 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
2 ms |
348 KB |
Output is correct |
12 |
Correct |
2 ms |
348 KB |
Output is correct |
13 |
Correct |
12 ms |
604 KB |
Output is correct |
14 |
Correct |
12 ms |
476 KB |
Output is correct |
15 |
Correct |
31 ms |
604 KB |
Output is correct |
16 |
Correct |
26 ms |
600 KB |
Output is correct |
17 |
Correct |
26 ms |
600 KB |
Output is correct |
18 |
Correct |
1 ms |
348 KB |
Output is correct |
19 |
Correct |
1 ms |
344 KB |
Output is correct |
20 |
Correct |
3 ms |
348 KB |
Output is correct |
21 |
Correct |
3 ms |
560 KB |
Output is correct |
22 |
Correct |
5 ms |
348 KB |
Output is correct |
23 |
Correct |
5 ms |
580 KB |
Output is correct |
24 |
Correct |
6 ms |
348 KB |
Output is correct |
25 |
Correct |
6 ms |
464 KB |
Output is correct |
26 |
Correct |
1 ms |
344 KB |
Output is correct |
27 |
Correct |
1 ms |
344 KB |
Output is correct |
28 |
Correct |
19 ms |
672 KB |
Output is correct |
29 |
Correct |
19 ms |
604 KB |
Output is correct |
30 |
Incorrect |
43 ms |
604 KB |
Output isn't correct |
31 |
Halted |
0 ms |
0 KB |
- |