Submission #968546

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

const int MAXS = 2000;
const int MAXITEM = 20000;
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 60 ms 179376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 20 ms 157528 KB Output is correct
2 Correct 20 ms 157472 KB Output is correct
3 Correct 22 ms 157408 KB Output is correct
4 Correct 19 ms 157272 KB Output is correct
5 Correct 20 ms 157276 KB Output is correct
6 Correct 21 ms 157388 KB Output is correct
7 Correct 21 ms 157276 KB Output is correct
8 Correct 21 ms 157272 KB Output is correct
9 Correct 21 ms 157276 KB Output is correct
10 Correct 21 ms 157276 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 20 ms 157528 KB Output is correct
2 Correct 20 ms 157472 KB Output is correct
3 Correct 22 ms 157408 KB Output is correct
4 Correct 19 ms 157272 KB Output is correct
5 Correct 20 ms 157276 KB Output is correct
6 Correct 21 ms 157388 KB Output is correct
7 Correct 21 ms 157276 KB Output is correct
8 Correct 21 ms 157272 KB Output is correct
9 Correct 21 ms 157276 KB Output is correct
10 Correct 21 ms 157276 KB Output is correct
11 Correct 20 ms 157268 KB Output is correct
12 Correct 23 ms 157532 KB Output is correct
13 Correct 20 ms 157276 KB Output is correct
14 Correct 20 ms 157276 KB Output is correct
15 Correct 21 ms 157348 KB Output is correct
16 Correct 30 ms 157268 KB Output is correct
17 Correct 20 ms 157272 KB Output is correct
18 Correct 21 ms 157728 KB Output is correct
19 Correct 23 ms 157400 KB Output is correct
20 Correct 22 ms 157276 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 60 ms 179376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 60 ms 179376 KB Output isn't correct
2 Halted 0 ms 0 KB -