Submission #318711

#TimeUsernameProblemLanguageResultExecution timeMemory
318711ryangohcaKnapsack (NOI18_knapsack)C++17
100 / 100
145 ms5228 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<int, int> priority_queue<pii> values[2001]; vector<pii> candidates; int dp[2001]; int32_t main() { int s, n; cin >> s >> n; for (int i = 0; i < n; i++){ int v, w, k; cin >> v >> w >> k; values[w].push({v, k}); } for (int i = 1; i <= 2000; i++){ int canChoose = s / i; while (!values[i].empty() && canChoose > 0){ pii top_e = values[i].top(); values[i].pop(); int num_chosen = min(canChoose, top_e.second); for (int j = 0; j < num_chosen; j++) candidates.push_back({top_e.first, i}); canChoose -= num_chosen; } } for (int a = 0; a < candidates.size(); ++a){ for (int c = s; c >= candidates[a].second; --c){ dp[c] = max(dp[c], dp[c - candidates[a].second] + candidates[a].first); } } cout << dp[s] << '\n'; }

Compilation message (stderr)

knapsack.cpp: In function 'int32_t main()':
knapsack.cpp:23:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int>, std::allocator<std::pair<long long int, long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |     for (int a = 0; a < candidates.size(); ++a){
      |                     ~~^~~~~~~~~~~~~~~~~~~
#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...