#dp[i][j] --- i represents using the first i items where items w same weight are grouped and j is the total weight
import math
s, n = map(int, input().split())
item_dict = {}
for x in range(n):
v, w, k = map(int, input().split())
if w in item_dict:
for y in range(k):
item_dict[w].append(v)
else:
item_dict[w] = [v for y in range(k)]
for key in item_dict.keys():
item_dict[key].sort(reverse=True)
items = sorted(item_dict.keys())
dp = [[0 for j in range(s+1)] for i in range(len(items)+1)]
for j in range(s+1):
for i in range(0, len(items)):
dp[i+1][j] = dp[i][j]
for k in range(len(item_dict[items[i]])):
if j-items[i]*(k+1) >= 0:
dp[i+1][j] = max(dp[i+1][j], dp[i][j-items[i]*(k+1)] + sum(item_dict[items[i]][:k+1]))
#dp[i+1][j] = max(dp[i+1][j], sum(item_dict[items[i]][:min(len(item_dict[items[i]]), math.ceil(s/items[i]))]))
print(dp[-1][-1])
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
1088 ms |
38472 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
40 ms |
18208 KB |
Output is correct |
2 |
Correct |
130 ms |
20760 KB |
Output is correct |
3 |
Correct |
98 ms |
20672 KB |
Output is correct |
4 |
Correct |
50 ms |
19408 KB |
Output is correct |
5 |
Correct |
51 ms |
19412 KB |
Output is correct |
6 |
Correct |
102 ms |
24056 KB |
Output is correct |
7 |
Correct |
106 ms |
24092 KB |
Output is correct |
8 |
Correct |
94 ms |
24064 KB |
Output is correct |
9 |
Correct |
88 ms |
23592 KB |
Output is correct |
10 |
Correct |
108 ms |
24228 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
40 ms |
18208 KB |
Output is correct |
2 |
Correct |
130 ms |
20760 KB |
Output is correct |
3 |
Correct |
98 ms |
20672 KB |
Output is correct |
4 |
Correct |
50 ms |
19408 KB |
Output is correct |
5 |
Correct |
51 ms |
19412 KB |
Output is correct |
6 |
Correct |
102 ms |
24056 KB |
Output is correct |
7 |
Correct |
106 ms |
24092 KB |
Output is correct |
8 |
Correct |
94 ms |
24064 KB |
Output is correct |
9 |
Correct |
88 ms |
23592 KB |
Output is correct |
10 |
Correct |
108 ms |
24228 KB |
Output is correct |
11 |
Correct |
46 ms |
18220 KB |
Output is correct |
12 |
Execution timed out |
1089 ms |
23152 KB |
Time limit exceeded |
13 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
1088 ms |
38472 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
1088 ms |
38472 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |