Submission #1171505

#TimeUsernameProblemLanguageResultExecution timeMemory
1171505abcsedafaefKnapsack (NOI18_knapsack)C++20
0 / 100
1096 ms320 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define str string #define vi vector<int> #define vll vector<long long> #define vc vector<char> #define vs vector<string> #define pi pair<int, int> #define vpi vector<pi> #define vvi vector<vector<int>> #define si set<int> #define ins insert #define pb(a) push_back(a) #define all(v) v.begin(), v.end() #define rall(v) v.rbegin(), v.rend() #define rep(i, b) for (int i = 0; i < (b); i++) #define fast_io \ ios_base::sync_with_stdio(false); \ std::cin.tie(NULL) #define coutyes cout << "YES" << endl; #define coutno cout << "NO" << endl; using namespace std; void solve() { int x, n; cin >> x >> n; vi v(n), c(n), t(n); for (int i = 0; i < n; i++) { cin >> v[i]; } for (int i = 0; i < n; i++) { cin >> c[i]; // Use 'c' instead of 'w' } for (int i = 0; i < n; i++) { cin >> t[i]; } vector<vector<int>> dp(n + 1, vector<int>(x + 1, 0)); for (int i = n - 1; i >= 0; i--) { for (int j = 0; j <= x; j++) { int skip = dp[i + 1][j]; dp[i][j] = skip; for (int k = 1; k <= t[i]; k++) { if (j - k * c[i] >= 0) { int pick = k * v[i] + dp[i + 1][j - k * c[i]]; dp[i][j] = max(dp[i][j], pick); } } } } cout << dp[0][x]; } int main() { fast_io; ll t = 1; // cin >> t; while (t--) { 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...