#include <bits/stdc++.h>
#define int long long
using namespace std;
const int INF = 1000000000000000000;
int n,m;
int a[200005], s[200005], p[200005];
int b[200005], t[200005], q[200005];
int pa[200005];
int pb[200005];
int pp[200005], pq[200005];
int mem[2005][2005];
int dp(int i, int j){
if (i == n+1 && j == m+1) return 0;
if (mem[i][j] != -1) return mem[i][j];
int T = pa[i-1] + pb[j-1];
int ret = -INF;
if (i != n+1){
ret = max(ret, dp(i+1, j) + ((T+a[i] <= s[i])?p[i]:0));
}
if (j != m+1){
ret = max(ret, dp(i, j+1) + ((T+b[j] <= t[j])?q[j]:0));
}
//printf("%d %d %d %d\n",i,j,T,ret);
return mem[i][j] = ret;
}
main(){
scanf("%lld%lld",&n,&m);
for (int i = 1; i <= n; i++){
scanf("%lld%lld%lld",&a[i],&s[i],&p[i]);
pa[i] = pa[i-1] + a[i];
pp[i] = pp[i-1] + p[i];
}
for (int i = 1; i <= m; i++){
scanf("%lld%lld%lld",&b[i],&t[i],&q[i]);
pb[i] = pb[i-1] + b[i];
pq[i] = pq[i-1] + q[i];
}
if (n <= 2000 && m <= 2000){
memset(mem,-1,sizeof(mem));
printf("%lld",dp(1,1));
}
else{
if (s[1] > t[1]){
swap(n,m);
swap(a,b);
swap(s,t);
swap(p,q);
swap(pp,pq);
swap(pa,pb);
}
int ans = -INF;
int R = m;
int curT = 0;
int stopT = 0;
for (int i = 1; i <= n; i++){
if (pa[i] <= s[1]) pp[i] = max(pp[i-1], pp[i]);
else pp[i] = pp[i-1];
}
for (int i = 0; i <= n; i++){
while (R >= 1 && pa[i] + pb[R] > t[1]){
R--;
}
ans = max(ans, pp[i]+pq[R]);
}
printf("%lld",ans);
}
}
Compilation message
dishes.cpp:26:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
26 | main(){
| ^~~~
dishes.cpp: In function 'int main()':
dishes.cpp:53:13: warning: unused variable 'curT' [-Wunused-variable]
53 | int curT = 0;
| ^~~~
dishes.cpp:54:13: warning: unused variable 'stopT' [-Wunused-variable]
54 | int stopT = 0;
| ^~~~~
dishes.cpp:27:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
27 | scanf("%lld%lld",&n,&m);
| ~~~~~^~~~~~~~~~~~~~~~~~
dishes.cpp:29:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
29 | scanf("%lld%lld%lld",&a[i],&s[i],&p[i]);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dishes.cpp:34:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
34 | scanf("%lld%lld%lld",&b[i],&t[i],&q[i]);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
145 ms |
15936 KB |
Output is correct |
2 |
Correct |
145 ms |
16124 KB |
Output is correct |
3 |
Correct |
146 ms |
16444 KB |
Output is correct |
4 |
Correct |
142 ms |
16120 KB |
Output is correct |
5 |
Correct |
14 ms |
31828 KB |
Output is correct |
6 |
Correct |
142 ms |
15804 KB |
Output is correct |
7 |
Correct |
74 ms |
8536 KB |
Output is correct |
8 |
Correct |
83 ms |
8592 KB |
Output is correct |
9 |
Correct |
150 ms |
16400 KB |
Output is correct |
10 |
Correct |
110 ms |
16336 KB |
Output is correct |
11 |
Correct |
102 ms |
16440 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
31828 KB |
Output is correct |
2 |
Correct |
15 ms |
31828 KB |
Output is correct |
3 |
Correct |
13 ms |
31720 KB |
Output is correct |
4 |
Correct |
13 ms |
31828 KB |
Output is correct |
5 |
Correct |
15 ms |
31732 KB |
Output is correct |
6 |
Correct |
14 ms |
31780 KB |
Output is correct |
7 |
Correct |
13 ms |
31828 KB |
Output is correct |
8 |
Correct |
14 ms |
31828 KB |
Output is correct |
9 |
Correct |
13 ms |
31728 KB |
Output is correct |
10 |
Correct |
13 ms |
31828 KB |
Output is correct |
11 |
Correct |
14 ms |
31828 KB |
Output is correct |
12 |
Correct |
15 ms |
31828 KB |
Output is correct |
13 |
Correct |
13 ms |
31728 KB |
Output is correct |
14 |
Correct |
13 ms |
31720 KB |
Output is correct |
15 |
Correct |
15 ms |
31732 KB |
Output is correct |
16 |
Correct |
13 ms |
31828 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
31828 KB |
Output is correct |
2 |
Correct |
15 ms |
31828 KB |
Output is correct |
3 |
Correct |
13 ms |
31720 KB |
Output is correct |
4 |
Correct |
13 ms |
31828 KB |
Output is correct |
5 |
Correct |
15 ms |
31732 KB |
Output is correct |
6 |
Correct |
14 ms |
31780 KB |
Output is correct |
7 |
Correct |
13 ms |
31828 KB |
Output is correct |
8 |
Correct |
14 ms |
31828 KB |
Output is correct |
9 |
Correct |
13 ms |
31728 KB |
Output is correct |
10 |
Correct |
13 ms |
31828 KB |
Output is correct |
11 |
Correct |
14 ms |
31828 KB |
Output is correct |
12 |
Correct |
15 ms |
31828 KB |
Output is correct |
13 |
Correct |
13 ms |
31728 KB |
Output is correct |
14 |
Correct |
13 ms |
31720 KB |
Output is correct |
15 |
Correct |
15 ms |
31732 KB |
Output is correct |
16 |
Correct |
13 ms |
31828 KB |
Output is correct |
17 |
Correct |
62 ms |
32084 KB |
Output is correct |
18 |
Correct |
56 ms |
32152 KB |
Output is correct |
19 |
Correct |
65 ms |
32084 KB |
Output is correct |
20 |
Correct |
66 ms |
32140 KB |
Output is correct |
21 |
Correct |
56 ms |
32148 KB |
Output is correct |
22 |
Correct |
60 ms |
32084 KB |
Output is correct |
23 |
Correct |
60 ms |
32084 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
31828 KB |
Output is correct |
2 |
Correct |
15 ms |
31828 KB |
Output is correct |
3 |
Correct |
13 ms |
31720 KB |
Output is correct |
4 |
Correct |
13 ms |
31828 KB |
Output is correct |
5 |
Correct |
15 ms |
31732 KB |
Output is correct |
6 |
Correct |
14 ms |
31780 KB |
Output is correct |
7 |
Correct |
13 ms |
31828 KB |
Output is correct |
8 |
Correct |
14 ms |
31828 KB |
Output is correct |
9 |
Correct |
13 ms |
31728 KB |
Output is correct |
10 |
Correct |
13 ms |
31828 KB |
Output is correct |
11 |
Correct |
14 ms |
31828 KB |
Output is correct |
12 |
Correct |
15 ms |
31828 KB |
Output is correct |
13 |
Correct |
13 ms |
31728 KB |
Output is correct |
14 |
Correct |
13 ms |
31720 KB |
Output is correct |
15 |
Correct |
15 ms |
31732 KB |
Output is correct |
16 |
Correct |
13 ms |
31828 KB |
Output is correct |
17 |
Correct |
62 ms |
32084 KB |
Output is correct |
18 |
Correct |
56 ms |
32152 KB |
Output is correct |
19 |
Correct |
65 ms |
32084 KB |
Output is correct |
20 |
Correct |
66 ms |
32140 KB |
Output is correct |
21 |
Correct |
56 ms |
32148 KB |
Output is correct |
22 |
Correct |
60 ms |
32084 KB |
Output is correct |
23 |
Correct |
60 ms |
32084 KB |
Output is correct |
24 |
Incorrect |
122 ms |
15976 KB |
Output isn't correct |
25 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
31828 KB |
Output is correct |
2 |
Correct |
15 ms |
31828 KB |
Output is correct |
3 |
Correct |
13 ms |
31720 KB |
Output is correct |
4 |
Correct |
13 ms |
31828 KB |
Output is correct |
5 |
Correct |
15 ms |
31732 KB |
Output is correct |
6 |
Correct |
14 ms |
31780 KB |
Output is correct |
7 |
Correct |
13 ms |
31828 KB |
Output is correct |
8 |
Correct |
14 ms |
31828 KB |
Output is correct |
9 |
Correct |
13 ms |
31728 KB |
Output is correct |
10 |
Correct |
13 ms |
31828 KB |
Output is correct |
11 |
Correct |
14 ms |
31828 KB |
Output is correct |
12 |
Correct |
15 ms |
31828 KB |
Output is correct |
13 |
Correct |
13 ms |
31728 KB |
Output is correct |
14 |
Correct |
13 ms |
31720 KB |
Output is correct |
15 |
Correct |
15 ms |
31732 KB |
Output is correct |
16 |
Correct |
13 ms |
31828 KB |
Output is correct |
17 |
Correct |
62 ms |
32084 KB |
Output is correct |
18 |
Correct |
56 ms |
32152 KB |
Output is correct |
19 |
Correct |
65 ms |
32084 KB |
Output is correct |
20 |
Correct |
66 ms |
32140 KB |
Output is correct |
21 |
Correct |
56 ms |
32148 KB |
Output is correct |
22 |
Correct |
60 ms |
32084 KB |
Output is correct |
23 |
Correct |
60 ms |
32084 KB |
Output is correct |
24 |
Incorrect |
122 ms |
15976 KB |
Output isn't correct |
25 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
31828 KB |
Output is correct |
2 |
Correct |
15 ms |
31828 KB |
Output is correct |
3 |
Correct |
13 ms |
31720 KB |
Output is correct |
4 |
Correct |
13 ms |
31828 KB |
Output is correct |
5 |
Correct |
15 ms |
31732 KB |
Output is correct |
6 |
Correct |
14 ms |
31780 KB |
Output is correct |
7 |
Correct |
13 ms |
31828 KB |
Output is correct |
8 |
Correct |
14 ms |
31828 KB |
Output is correct |
9 |
Correct |
13 ms |
31728 KB |
Output is correct |
10 |
Correct |
13 ms |
31828 KB |
Output is correct |
11 |
Correct |
14 ms |
31828 KB |
Output is correct |
12 |
Correct |
15 ms |
31828 KB |
Output is correct |
13 |
Correct |
13 ms |
31728 KB |
Output is correct |
14 |
Correct |
13 ms |
31720 KB |
Output is correct |
15 |
Correct |
15 ms |
31732 KB |
Output is correct |
16 |
Correct |
13 ms |
31828 KB |
Output is correct |
17 |
Correct |
62 ms |
32084 KB |
Output is correct |
18 |
Correct |
56 ms |
32152 KB |
Output is correct |
19 |
Correct |
65 ms |
32084 KB |
Output is correct |
20 |
Correct |
66 ms |
32140 KB |
Output is correct |
21 |
Correct |
56 ms |
32148 KB |
Output is correct |
22 |
Correct |
60 ms |
32084 KB |
Output is correct |
23 |
Correct |
60 ms |
32084 KB |
Output is correct |
24 |
Incorrect |
122 ms |
15976 KB |
Output isn't correct |
25 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
145 ms |
15936 KB |
Output is correct |
2 |
Correct |
145 ms |
16124 KB |
Output is correct |
3 |
Correct |
146 ms |
16444 KB |
Output is correct |
4 |
Correct |
142 ms |
16120 KB |
Output is correct |
5 |
Correct |
14 ms |
31828 KB |
Output is correct |
6 |
Correct |
142 ms |
15804 KB |
Output is correct |
7 |
Correct |
74 ms |
8536 KB |
Output is correct |
8 |
Correct |
83 ms |
8592 KB |
Output is correct |
9 |
Correct |
150 ms |
16400 KB |
Output is correct |
10 |
Correct |
110 ms |
16336 KB |
Output is correct |
11 |
Correct |
102 ms |
16440 KB |
Output is correct |
12 |
Correct |
13 ms |
31828 KB |
Output is correct |
13 |
Correct |
15 ms |
31828 KB |
Output is correct |
14 |
Correct |
13 ms |
31720 KB |
Output is correct |
15 |
Correct |
13 ms |
31828 KB |
Output is correct |
16 |
Correct |
15 ms |
31732 KB |
Output is correct |
17 |
Correct |
14 ms |
31780 KB |
Output is correct |
18 |
Correct |
13 ms |
31828 KB |
Output is correct |
19 |
Correct |
14 ms |
31828 KB |
Output is correct |
20 |
Correct |
13 ms |
31728 KB |
Output is correct |
21 |
Correct |
13 ms |
31828 KB |
Output is correct |
22 |
Correct |
14 ms |
31828 KB |
Output is correct |
23 |
Correct |
15 ms |
31828 KB |
Output is correct |
24 |
Correct |
13 ms |
31728 KB |
Output is correct |
25 |
Correct |
13 ms |
31720 KB |
Output is correct |
26 |
Correct |
15 ms |
31732 KB |
Output is correct |
27 |
Correct |
13 ms |
31828 KB |
Output is correct |
28 |
Correct |
62 ms |
32084 KB |
Output is correct |
29 |
Correct |
56 ms |
32152 KB |
Output is correct |
30 |
Correct |
65 ms |
32084 KB |
Output is correct |
31 |
Correct |
66 ms |
32140 KB |
Output is correct |
32 |
Correct |
56 ms |
32148 KB |
Output is correct |
33 |
Correct |
60 ms |
32084 KB |
Output is correct |
34 |
Correct |
60 ms |
32084 KB |
Output is correct |
35 |
Incorrect |
122 ms |
15976 KB |
Output isn't correct |
36 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
145 ms |
15936 KB |
Output is correct |
2 |
Correct |
145 ms |
16124 KB |
Output is correct |
3 |
Correct |
146 ms |
16444 KB |
Output is correct |
4 |
Correct |
142 ms |
16120 KB |
Output is correct |
5 |
Correct |
14 ms |
31828 KB |
Output is correct |
6 |
Correct |
142 ms |
15804 KB |
Output is correct |
7 |
Correct |
74 ms |
8536 KB |
Output is correct |
8 |
Correct |
83 ms |
8592 KB |
Output is correct |
9 |
Correct |
150 ms |
16400 KB |
Output is correct |
10 |
Correct |
110 ms |
16336 KB |
Output is correct |
11 |
Correct |
102 ms |
16440 KB |
Output is correct |
12 |
Correct |
13 ms |
31828 KB |
Output is correct |
13 |
Correct |
15 ms |
31828 KB |
Output is correct |
14 |
Correct |
13 ms |
31720 KB |
Output is correct |
15 |
Correct |
13 ms |
31828 KB |
Output is correct |
16 |
Correct |
15 ms |
31732 KB |
Output is correct |
17 |
Correct |
14 ms |
31780 KB |
Output is correct |
18 |
Correct |
13 ms |
31828 KB |
Output is correct |
19 |
Correct |
14 ms |
31828 KB |
Output is correct |
20 |
Correct |
13 ms |
31728 KB |
Output is correct |
21 |
Correct |
13 ms |
31828 KB |
Output is correct |
22 |
Correct |
14 ms |
31828 KB |
Output is correct |
23 |
Correct |
15 ms |
31828 KB |
Output is correct |
24 |
Correct |
13 ms |
31728 KB |
Output is correct |
25 |
Correct |
13 ms |
31720 KB |
Output is correct |
26 |
Correct |
15 ms |
31732 KB |
Output is correct |
27 |
Correct |
13 ms |
31828 KB |
Output is correct |
28 |
Correct |
62 ms |
32084 KB |
Output is correct |
29 |
Correct |
56 ms |
32152 KB |
Output is correct |
30 |
Correct |
65 ms |
32084 KB |
Output is correct |
31 |
Correct |
66 ms |
32140 KB |
Output is correct |
32 |
Correct |
56 ms |
32148 KB |
Output is correct |
33 |
Correct |
60 ms |
32084 KB |
Output is correct |
34 |
Correct |
60 ms |
32084 KB |
Output is correct |
35 |
Incorrect |
122 ms |
15976 KB |
Output isn't correct |
36 |
Halted |
0 ms |
0 KB |
- |