제출 #1195419

#제출 시각아이디문제언어결과실행 시간메모리
1195419timeflewKnapsack (NOI18_knapsack)C++20
17 / 100
1 ms328 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define ff first #define ss second const int mxS=2e3; ll dp[mxS+1]; int main() { ios::sync_with_stdio(0); cin.tie(0); int s, n; cin>>s>>n; vector<array<ll, 3>> v(n); for(int i=0; i<n; i++) { cin>>v[i][0]>>v[i][1]>>v[i][2];//v, w, k } fill(dp, dp+mxS+1, -1e18); dp[0]=0; ll ans=0; for(int i=0; i<n; i++) { for(int j=1; j<=v[i][2]; j*=2) { int x=min(1ll*j, v[i][2])*v[i][1]; if(x>s) break; ll val=1ll*min(1ll*j, v[i][2])*v[i][0]; for(int k=s; k>=x; k--) { dp[k]=max(dp[k], dp[k-x]+val); ans=max(ans, dp[k]); } } } cout<<ans; 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...