Submission #524047

#TimeUsernameProblemLanguageResultExecution timeMemory
524047shubham20_03Knapsack (NOI18_knapsack)C++17
49 / 100
1099 ms85456 KiB
#include <bits/stdc++.h> using namespace std; #define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); #define deb(x) cout<<#x<<'='<<x<<'\n'; #define deb2(x,y) cout<<#x<<'='<<x<<", "<<#y<<'='<<y<<'\n'; #define int long long #define all(x) (x).begin(), (x).end() #define pii pair<int, int> #define pb push_back #define f first #define s second #define sz(x) (int)(x).size() const long double PI = acos(-1); const int mod = 1e9 + 7, inf = 1e16; const int D = 2e5 + 10; map<string, int> mp; int knapsack(vector<pii>& a, int n, int S) { if (S == 0 or n == 0) return 0; string key = to_string(n) + " " + to_string(S); if (mp.count(key)) return mp[key]; int ans = knapsack(a, n - 1, S); if (a[n - 1].f <= S) ans = max(ans, knapsack(a, n - 1, S - a[n - 1].f) + a[n - 1].s); return mp[key] = ans; } signed main() { fastio // freopen("../input1.txt", "r", stdin); // freopen("../output1.txt", "w", stdout); int S, n; cin >> S >> n; vector<pii> a; for (int i = 0; i < n; i++) { int v, w, k; cin >> v >> w >> k; int cur = 0; while (cur + w <= S and k > 0) { a.pb({w, v}); k--, cur += w; } } n = sz(a); cout << knapsack(a, n, S) << '\n'; 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...