Submission #1307289

#TimeUsernameProblemLanguageResultExecution timeMemory
1307289ninstroyerKnapsack (NOI18_knapsack)C++20
73 / 100
301 ms327680 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long const int wx = 2005; ll n,s,dp[2][wx]; vector<tuple<ll,ll>> items; int main() { ios::sync_with_stdio(false); cin.tie(0); cin>>s>>n; for(int i = 0; i < n; i++) { int v,we,k; cin>>v>>we>>k; for(int i = 0; i < min(k,2000/we); i++) { items.push_back({v,we}); } } for(int i = 0; i < items.size(); i++) { int cur = i%2, prev = 1-cur; for(int j = 0; j <= s; j++) { auto [vl, w] = items[i]; dp[cur][j] = dp[prev][j]; if(w > j) continue; dp[cur][j] = max(dp[cur][j], dp[prev][j-w]+vl); } } cout<<dp[1-items.size()%2][s]; }
#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...