Submission #723963

#TimeUsernameProblemLanguageResultExecution timeMemory
723963BodishaKnapsack (NOI18_knapsack)C++17
73 / 100
470 ms262144 KiB
#include <bits/stdc++.h> #define MAX_N 100001 #define MAX_S 2001 #define ll long long int #define V 0 #define W 1 #define K 2 using namespace std; tuple<int, int, int> items[MAX_N]; ll dp[MAX_N][MAX_S]; int main() { int s, n; cin >> s >> n; for(int i = 0; i < n; i++) { cin >> get<V>(items[i]) >> get<W>(items[i]) >> get<K>(items[i]); } for(int i = 1; i <= n; i++) { for(int j = 1; j <= s; j++) { dp[i][j] = dp[i - 1][j]; int multiplier = 1; while(j - multiplier * get<W>(items[i - 1]) >= 0 && multiplier <= get<K>(items[i - 1])) { dp[i][j] = max(dp[i][j], dp[i - 1][j - multiplier * get<W>(items[i - 1])] + multiplier * get<V>(items[i - 1])); multiplier++; } } } cout << dp[n][s]; 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...