Submission #1113257

#TimeUsernameProblemLanguageResultExecution timeMemory
1113257Yang8onKnapsack (NOI18_knapsack)C++17
73 / 100
1057 ms17152 KiB
#include <bits/stdc++.h> #define file "main" #define maxn (int) 3e6 + 5 #define ll long long #define pii pair<ll, int> #define fi(i, a, b) for(int i = a; i <= b; i ++) #define fid(i, a, b) for(int i = a; i >= b; i --) #define int long long using namespace std; int S, n, N; pii a[maxn]; ll dp[2005]; main() { // freopen(file".inp", "r", stdin); ios::sync_with_stdio(false); cin.tie(0); cin >> S >> n; fi(i, 1, n) { int v, w, k; cin >> v >> w >> k; for(int tmp = 1; tmp <= k; tmp *= 2) { ll nw_v = v * tmp, nw_w = w * tmp; if(nw_w <= S) a[++N] = { nw_v, nw_w }; k -= tmp; } if(k) { ll nw_v = v * k, nw_w = w * k; if(nw_w <= S) a[++N] = { nw_v, nw_w }; } } memset(dp, -0x3f, sizeof dp); dp[0] = 0; fi(i, 1, N) { fid(j, S, a[i].second) { dp[j] = max(dp[j], dp[j - a[i].second] + a[i].first); } } cout << *max_element(dp + 0, dp + S + 1); return 0; }

Compilation message (stderr)

knapsack.cpp:16:2: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   16 |  main() {
      |  ^~~~
#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...