Submission #1177674

#TimeUsernameProblemLanguageResultExecution timeMemory
1177674vyaductKnapsack (NOI18_knapsack)C++20
73 / 100
353 ms327680 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define all(c) (c).begin(), (c).end() #define sz(c) (int)(c).size() #define vt vector #define pb push_back #define F first #define S second void solve() { int s,n; cin>>s>>n; vt<vt<ll>> item(s+1); for (int i=0;i<n;i++){ int v,w,k; cin>>v>>w>>k; k = min(k, s); for (int j=0;j<k;j++) item[w].pb(v); } vt<ll> dp(s+1, 0); for (int w=1;w<=s;w++){ sort(all(item[w]), greater<>()); vt<ll> values; int cn = min(sz(item[w]), (s+w-1)/w); for (int i=0;i<cn;i++) values.pb(item[w][i]); for (int v: values){ for (int x=s;x>=w;x--){ dp[x] = max(dp[x], dp[x-w]+v); } } } cout << dp[s] << endl; } int main() { int tt=1; // cin>>tt; while(tt--) solve(); return 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...