제출 #861385

#제출 시각아이디문제언어결과실행 시간메모리
861385anarch_yKnapsack (NOI18_knapsack)C++17
73 / 100
1029 ms3928 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; #define all(x) begin(x), end(x) #define pb push_back #define int long long signed main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int S, N; cin >> S >> N; vector<int> V(N+1, 0), W(N+1, 0), K(N+1, 0); for(int i=1; i<=N; i++){ cin >> V[i] >> W[i] >> K[i]; K[i] = min(K[i], S/W[i]); } vector<vector<int>> dp(2, vector<int>(S+1, 0)); for(int i=1; i<=N; i++){ for(int j=1; j<=S; j++){ dp[1][j] = dp[0][j]; for(int k=1; k<=K[i]; k++){ int w = k*W[i]; if(j>=w){ dp[1][j] = max(dp[1][j], dp[0][j-w]+k*V[i]); } } } dp[0] = dp[1]; dp[1] = vector<int>(S+1, 0); } cout << dp[0][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...