# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
486418 | 2021-11-11T15:58:57 Z | TruaShamu | Knapsack (NOI18_knapsack) | C++11 | 190 ms | 125732 KB |
#define _CRT_SECURE_NO_DEPRECATE #include <bits/stdc++.h> // see /general/running-code-locally using namespace std; using ll = long long; using vi = vector<int>; #define pb push_back #define all(x) begin(x), end(x) #define allr(x, r) begin(x), begin(x) + (r) #define sz(x) (int) (x).size() using pi = pair<int, int>; #define f first #define s second #define mp make_pair void setIO(string name = "") { cin.tie(0)->sync_with_stdio(0); // see /general/fast-io if (sz(name)) { freopen((name + ".in").c_str(), "r", stdin); // see /general/input-output freopen((name + ".out").c_str(), "w", stdout); } } int main() { int S, N; cin >> S >> N; vector<vector<pi>> items(S + 1, vector<pi>()); for (int i = 0; i < N; i++) { int V, W, K; cin >> V >> W >> K; items[W].pb({ V, K }); } for (int i = 0; i <= S; i++) { sort(all(items[i]), greater<pi>()); } /*for (int i = 0; i <= S; i++) { for (pi j : items[i]) { cout << j.first << " " << j.second << "\n"; } cout << "-------------------------\n"; }*/ int maxItems = 0; for (int i = 1; i <= S; i++) { maxItems += S / i; } //cout << "total: " << maxItems << "\n"; // DP[i][j] is the max profit for i items and j weight. vector<vi> dp(maxItems + 1, vi(S + 1, 0)); int numItems = 1; for (int w = 1; w <= S; w++) { if (items[w].size() == 0) { continue; } int w_i = 0; int copies = items[w][0].second; for (int amt = 0; amt < S / w; amt++) { for (int cur = 1; cur <= S; cur++) { dp[numItems][cur] = dp[numItems - 1][cur]; if (cur - w >= 0) { dp[numItems][cur] = max(dp[numItems][cur], dp[numItems - 1][cur - w] + items[w][w_i].f); } } numItems++; copies--; if (copies == 0) { w_i++; if (w_i >= items[w].size()) { break; } copies = items[w][w_i].s; } } } cout << dp[numItems - 1][S] << "\n"; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 16 ms | 44108 KB | Output is correct |
2 | Correct | 16 ms | 44040 KB | Output is correct |
3 | Correct | 17 ms | 44012 KB | Output is correct |
4 | Correct | 17 ms | 44128 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 46 ms | 122356 KB | Output is correct |
3 | Correct | 46 ms | 122208 KB | Output is correct |
4 | Correct | 48 ms | 121792 KB | Output is correct |
5 | Correct | 44 ms | 121856 KB | Output is correct |
6 | Correct | 46 ms | 122308 KB | Output is correct |
7 | Correct | 44 ms | 122192 KB | Output is correct |
8 | Correct | 44 ms | 121780 KB | Output is correct |
9 | Correct | 44 ms | 121796 KB | Output is correct |
10 | Correct | 44 ms | 122232 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 46 ms | 122356 KB | Output is correct |
3 | Correct | 46 ms | 122208 KB | Output is correct |
4 | Correct | 48 ms | 121792 KB | Output is correct |
5 | Correct | 44 ms | 121856 KB | Output is correct |
6 | Correct | 46 ms | 122308 KB | Output is correct |
7 | Correct | 44 ms | 122192 KB | Output is correct |
8 | Correct | 44 ms | 121780 KB | Output is correct |
9 | Correct | 44 ms | 121796 KB | Output is correct |
10 | Correct | 44 ms | 122232 KB | Output is correct |
11 | Correct | 0 ms | 204 KB | Output is correct |
12 | Correct | 47 ms | 122420 KB | Output is correct |
13 | Correct | 48 ms | 122180 KB | Output is correct |
14 | Correct | 45 ms | 122396 KB | Output is correct |
15 | Correct | 55 ms | 121888 KB | Output is correct |
16 | Correct | 47 ms | 122176 KB | Output is correct |
17 | Correct | 48 ms | 121832 KB | Output is correct |
18 | Correct | 45 ms | 122212 KB | Output is correct |
19 | Correct | 45 ms | 122308 KB | Output is correct |
20 | Correct | 47 ms | 121796 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 16 ms | 44108 KB | Output is correct |
2 | Correct | 16 ms | 44040 KB | Output is correct |
3 | Correct | 17 ms | 44012 KB | Output is correct |
4 | Correct | 17 ms | 44128 KB | Output is correct |
5 | Correct | 0 ms | 204 KB | Output is correct |
6 | Correct | 46 ms | 122356 KB | Output is correct |
7 | Correct | 46 ms | 122208 KB | Output is correct |
8 | Correct | 48 ms | 121792 KB | Output is correct |
9 | Correct | 44 ms | 121856 KB | Output is correct |
10 | Correct | 46 ms | 122308 KB | Output is correct |
11 | Correct | 44 ms | 122192 KB | Output is correct |
12 | Correct | 44 ms | 121780 KB | Output is correct |
13 | Correct | 44 ms | 121796 KB | Output is correct |
14 | Correct | 44 ms | 122232 KB | Output is correct |
15 | Correct | 0 ms | 204 KB | Output is correct |
16 | Correct | 47 ms | 122420 KB | Output is correct |
17 | Correct | 48 ms | 122180 KB | Output is correct |
18 | Correct | 45 ms | 122396 KB | Output is correct |
19 | Correct | 55 ms | 121888 KB | Output is correct |
20 | Correct | 47 ms | 122176 KB | Output is correct |
21 | Correct | 48 ms | 121832 KB | Output is correct |
22 | Correct | 45 ms | 122212 KB | Output is correct |
23 | Correct | 45 ms | 122308 KB | Output is correct |
24 | Correct | 47 ms | 121796 KB | Output is correct |
25 | Correct | 0 ms | 204 KB | Output is correct |
26 | Correct | 60 ms | 122180 KB | Output is correct |
27 | Correct | 45 ms | 122304 KB | Output is correct |
28 | Correct | 54 ms | 122164 KB | Output is correct |
29 | Correct | 53 ms | 122188 KB | Output is correct |
30 | Correct | 47 ms | 122172 KB | Output is correct |
31 | Correct | 47 ms | 122224 KB | Output is correct |
32 | Correct | 45 ms | 122272 KB | Output is correct |
33 | Correct | 56 ms | 121848 KB | Output is correct |
34 | Correct | 45 ms | 122220 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 16 ms | 44108 KB | Output is correct |
2 | Correct | 16 ms | 44040 KB | Output is correct |
3 | Correct | 17 ms | 44012 KB | Output is correct |
4 | Correct | 17 ms | 44128 KB | Output is correct |
5 | Correct | 0 ms | 204 KB | Output is correct |
6 | Correct | 46 ms | 122356 KB | Output is correct |
7 | Correct | 46 ms | 122208 KB | Output is correct |
8 | Correct | 48 ms | 121792 KB | Output is correct |
9 | Correct | 44 ms | 121856 KB | Output is correct |
10 | Correct | 46 ms | 122308 KB | Output is correct |
11 | Correct | 44 ms | 122192 KB | Output is correct |
12 | Correct | 44 ms | 121780 KB | Output is correct |
13 | Correct | 44 ms | 121796 KB | Output is correct |
14 | Correct | 44 ms | 122232 KB | Output is correct |
15 | Correct | 0 ms | 204 KB | Output is correct |
16 | Correct | 47 ms | 122420 KB | Output is correct |
17 | Correct | 48 ms | 122180 KB | Output is correct |
18 | Correct | 45 ms | 122396 KB | Output is correct |
19 | Correct | 55 ms | 121888 KB | Output is correct |
20 | Correct | 47 ms | 122176 KB | Output is correct |
21 | Correct | 48 ms | 121832 KB | Output is correct |
22 | Correct | 45 ms | 122212 KB | Output is correct |
23 | Correct | 45 ms | 122308 KB | Output is correct |
24 | Correct | 47 ms | 121796 KB | Output is correct |
25 | Correct | 0 ms | 204 KB | Output is correct |
26 | Correct | 60 ms | 122180 KB | Output is correct |
27 | Correct | 45 ms | 122304 KB | Output is correct |
28 | Correct | 54 ms | 122164 KB | Output is correct |
29 | Correct | 53 ms | 122188 KB | Output is correct |
30 | Correct | 47 ms | 122172 KB | Output is correct |
31 | Correct | 47 ms | 122224 KB | Output is correct |
32 | Correct | 45 ms | 122272 KB | Output is correct |
33 | Correct | 56 ms | 121848 KB | Output is correct |
34 | Correct | 45 ms | 122220 KB | Output is correct |
35 | Correct | 61 ms | 2204 KB | Output is correct |
36 | Correct | 139 ms | 124288 KB | Output is correct |
37 | Correct | 121 ms | 124148 KB | Output is correct |
38 | Correct | 115 ms | 124464 KB | Output is correct |
39 | Correct | 134 ms | 124856 KB | Output is correct |
40 | Correct | 190 ms | 125412 KB | Output is correct |
41 | Correct | 134 ms | 124756 KB | Output is correct |
42 | Correct | 133 ms | 124644 KB | Output is correct |
43 | Correct | 149 ms | 124992 KB | Output is correct |
44 | Correct | 146 ms | 124312 KB | Output is correct |
45 | Correct | 134 ms | 125732 KB | Output is correct |
46 | Correct | 133 ms | 125136 KB | Output is correct |
47 | Correct | 139 ms | 125712 KB | Output is correct |
48 | Correct | 148 ms | 125560 KB | Output is correct |
49 | Correct | 149 ms | 125372 KB | Output is correct |
50 | Correct | 154 ms | 125220 KB | Output is correct |