Submission #968541

# Submission time Handle Problem Language Result Execution time Memory
968541 2024-04-23T15:13:30 Z vjudge1 Knapsack (NOI18_knapsack) C++17
37 / 100
116 ms 147212 KB
#include<bits/stdc++.h>
using namespace std;

const int MAXS = 2000;
const int MAXITEM = 16000;
const int INF = 2e9;

int S, N;
vector<pair<int, int> > A[MAXS + 5];
vector<pair<int, int> > items;
int DP[MAXITEM + 5][MAXS + 5];

int f(int idx, int cap) {
    if (cap < 0) return -INF;
    if (idx == items.size()) return 0;
    int &ret = DP[idx][cap];
    if (ret != -1) return ret;
    auto [w, v] = items[idx];
    return ret = max(f(idx + 1, cap), f(idx + 1, cap - w) + v);
}

int main() {
    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    cin >> S >> N;
    for (int i = 0; i < N; i++) {
        int v, w, k;
        cin >> v >> w >> k;
        A[w].push_back({v, k});
    }
    for (int w = 1; w <= MAXS; w++) {
        sort(A[w].begin(), A[w].end());
        int used = MAXS / w + 1;
        while (used != 0 && !A[w].empty()) {
            auto &[v, k] = A[w].back();
            items.push_back({w, v});
            k--;
            if (k == 0) A[w].pop_back();
        }
    }
    memset(DP, -1, sizeof DP);
    cout << f(0, S) << endl;
    return 0;
}

Compilation message

knapsack.cpp: In function 'int f(int, int)':
knapsack.cpp:15:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |     if (idx == items.size()) return 0;
      |         ~~~~^~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 116 ms 147212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 16 ms 126040 KB Output is correct
2 Correct 16 ms 126044 KB Output is correct
3 Correct 16 ms 126032 KB Output is correct
4 Correct 16 ms 126040 KB Output is correct
5 Correct 17 ms 126044 KB Output is correct
6 Correct 18 ms 126044 KB Output is correct
7 Correct 17 ms 126044 KB Output is correct
8 Correct 17 ms 126044 KB Output is correct
9 Correct 17 ms 125932 KB Output is correct
10 Correct 17 ms 126044 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 16 ms 126040 KB Output is correct
2 Correct 16 ms 126044 KB Output is correct
3 Correct 16 ms 126032 KB Output is correct
4 Correct 16 ms 126040 KB Output is correct
5 Correct 17 ms 126044 KB Output is correct
6 Correct 18 ms 126044 KB Output is correct
7 Correct 17 ms 126044 KB Output is correct
8 Correct 17 ms 126044 KB Output is correct
9 Correct 17 ms 125932 KB Output is correct
10 Correct 17 ms 126044 KB Output is correct
11 Correct 16 ms 126052 KB Output is correct
12 Correct 19 ms 126092 KB Output is correct
13 Correct 16 ms 125996 KB Output is correct
14 Correct 16 ms 126052 KB Output is correct
15 Correct 16 ms 126044 KB Output is correct
16 Correct 23 ms 126040 KB Output is correct
17 Correct 17 ms 126044 KB Output is correct
18 Correct 17 ms 126044 KB Output is correct
19 Correct 18 ms 126044 KB Output is correct
20 Correct 19 ms 126112 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 116 ms 147212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 116 ms 147212 KB Output isn't correct
2 Halted 0 ms 0 KB -