Submission #629189

#TimeUsernameProblemLanguageResultExecution timeMemory
629189huyleKnapsack (NOI18_knapsack)C++17
73 / 100
366 ms262144 KiB
#include <bits/stdc++.h> using i64 = long long; #ifdef DEBUG #include "debug.h" #else #define debug(...) 69 #endif const i64 inf = 1e18; int32_t main() { int s, n; scanf("%d %d", &s, &n); std::vector<int> v(n), w(n), k(n); for (int i = 0; i < n; ++i) { scanf("%d %d %d", &v[i], &w[i], &k[i]); } std::vector<std::vector<i64>> dp(n + 1, std::vector<i64>(s + 1, -inf)); dp[0][0] = 0; for (int i = 0; i < n; ++i) { for (int d = 0; d <= k[i]; ++d) { i64 tmp = (i64)d * w[i]; if (tmp > s) break; for (int j = (int)tmp; j <= s; ++j) { if (dp[i][j - tmp] == -inf) continue; dp[i + 1][j] = std::max(dp[i + 1][j], dp[i][j - tmp] + (i64)d * v[i]); } } } printf("%lld\n", *std::max_element(dp[n].begin(), dp[n].end())); }

Compilation message (stderr)

knapsack.cpp: In function 'int32_t main()':
knapsack.cpp:11:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |   scanf("%d %d", &s, &n);
      |   ~~~~~^~~~~~~~~~~~~~~~~
knapsack.cpp:14:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |     scanf("%d %d %d", &v[i], &w[i], &k[i]);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...