Submission #794190

# Submission time Handle Problem Language Result Execution time Memory
794190 2023-07-26T10:26:11 Z jared Knapsack (NOI18_knapsack) C++17
37 / 100
122 ms 262144 KB
#include <bits/stdc++.h>

#ifdef LOCAL_TEST

#include "debugging.h"

#endif

#ifndef LOCAL_TEST

#define endl '\n'

#endif

using namespace std;

void setio(string filename) {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    if (getenv("stdio")) filename = "";
    else if (getenv("local_test")) filename = "test";

    if (!filename.empty()) {
        freopen((filename + ".in").c_str(), "r", stdin);
        freopen((filename + ".out").c_str(), "w", stdout);
    }
}

const int MAX_N = 1e5, MAX_S = 2000;
int s, n, v[MAX_N], w[MAX_N], prek[MAX_N], dp[MAX_N + 1][MAX_S + 1];

int ptr = 0, cnt = 0;
pair<int, int> next_item() {
    cnt++;
    if (cnt > prek[ptr]) ptr++;
    return {v[ptr], w[ptr]};
}

int main() {
    setio("");

    cin >> s >> n;
    for (int i = 0; i < n; ++i) {
        cin >> v[i] >> w[i] >> prek[i];

        if (i > 0) prek[i] += prek[i - 1];
    }

    for (int i = 1; i <= prek[n - 1]; ++i) { // item index
        auto [cur_v, cur_w] = next_item();

        for (int j = 0; j <= s; ++j) { // weight
            dp[i][j] = max(dp[i - 1][j],
                           j - cur_w >= 0 ? dp[i - 1][j - cur_w] + cur_v : -1);
        }
    }
    cout << dp[prek[n - 1]][s];
}

Compilation message

knapsack.cpp: In function 'void setio(std::string)':
knapsack.cpp:25:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |         freopen((filename + ".in").c_str(), "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
knapsack.cpp:26:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   26 |         freopen((filename + ".out").c_str(), "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Runtime error 122 ms 262144 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 724 KB Output is correct
2 Correct 1 ms 1108 KB Output is correct
3 Correct 1 ms 980 KB Output is correct
4 Correct 1 ms 1108 KB Output is correct
5 Correct 2 ms 1108 KB Output is correct
6 Correct 1 ms 1108 KB Output is correct
7 Correct 1 ms 1108 KB Output is correct
8 Correct 1 ms 980 KB Output is correct
9 Correct 1 ms 980 KB Output is correct
10 Correct 1 ms 1108 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 724 KB Output is correct
2 Correct 1 ms 1108 KB Output is correct
3 Correct 1 ms 980 KB Output is correct
4 Correct 1 ms 1108 KB Output is correct
5 Correct 2 ms 1108 KB Output is correct
6 Correct 1 ms 1108 KB Output is correct
7 Correct 1 ms 1108 KB Output is correct
8 Correct 1 ms 980 KB Output is correct
9 Correct 1 ms 980 KB Output is correct
10 Correct 1 ms 1108 KB Output is correct
11 Correct 1 ms 724 KB Output is correct
12 Correct 5 ms 7892 KB Output is correct
13 Correct 1 ms 980 KB Output is correct
14 Correct 1 ms 1108 KB Output is correct
15 Correct 3 ms 4564 KB Output is correct
16 Correct 3 ms 4436 KB Output is correct
17 Correct 1 ms 980 KB Output is correct
18 Correct 1 ms 1364 KB Output is correct
19 Correct 1 ms 1876 KB Output is correct
20 Correct 1 ms 1876 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 122 ms 262144 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 122 ms 262144 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -