Submission #683065

#TimeUsernameProblemLanguageResultExecution timeMemory
683065vjudge1Knapsack (NOI18_knapsack)C++17
100 / 100
61 ms2896 KiB
#include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <set> #include <string> #include <cmath> #include <map> #include <set> #include <queue> #include <cstring> #include <bitset> using namespace std; int x,n; const int maxn = 2e3; vector<pair<long long, long long>> item[maxn+5]; vector<long long> opt[maxn+5]; long long dp[maxn+5]; void solve() { cin >> x >> n; long long ans = 0; for(int i = 1; i <= n; i++) { long long c,v,k; cin >> v >> c >> k; item[c].push_back({v,k}); } for(int i = 1; i <= x; i++) { sort(item[i].begin(),item[i].end()); long long sum = 0; opt[i].push_back(sum); for(int p = 1; p <= x / i; p++) { if(item[i].empty()) break; sum += item[i].back().first; opt[i].push_back(sum); item[i][item[i].size()-1].second--; if(item[i][item[i].size()-1].second == 0) item[i].pop_back(); } } for(int i = 1; i <= x; i++) { for(int p = x; p >= i; p--) { for(int upper = 1; upper < opt[i].size() && upper * i <= p; upper++) { dp[p] = max(dp[p],dp[p-upper * i] + opt[i][upper]); } } } cout << dp[x]; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); solve(); return 0; }

Compilation message (stderr)

knapsack.cpp: In function 'void solve()':
knapsack.cpp:48:38: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |             for(int upper = 1; upper < opt[i].size() && upper * i <= p; upper++)
      |                                ~~~~~~^~~~~~~~~~~~~~~
knapsack.cpp:23:15: warning: unused variable 'ans' [-Wunused-variable]
   23 |     long long ans = 0;
      |               ^~~
#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...