Submission #630587

#TimeUsernameProblemLanguageResultExecution timeMemory
630587chjiaoKnapsack (NOI18_knapsack)C++14
17 / 100
1 ms340 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); //freopen("Knapsack.in", "r", stdin); // freopen("Knapsack.out", "w", stdout); int limit, type_num; cin >> limit >> type_num; vector<vector<int>> items(type_num, vector<int>(3)); for (int i = 0; i < type_num; i++) { int weight, num, val; cin >> val >> weight >> num; if (weight>limit) continue; items[i][0] = weight; items[i][1] = num; items[i][2] = val; } vector<ll> dp(limit+1, -1l); dp[0]= 0; int dylimit=0; for (int t=0; t<items.size(); t++) { int weight, num, val; weight = items[t][0]; num = items[t][1]; val = items[t][2]; for (int i= min(limit - weight, dylimit); i>=0; i--) { if (dp[i]>=0) { for (int k=num; k >=1 && i+k*weight <= limit; k--) { dp[i+k*weight] = max(dp[i+k*weight], dp[i] + k*val); dylimit = max(dylimit, i+k*weight ); } } } } cout << *max_element(dp.begin(), dp.end()) << endl; }

Compilation message (stderr)

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