Submission #1119152

#TimeUsernameProblemLanguageResultExecution timeMemory
1119152SN0WM4NKnapsack (NOI18_knapsack)C++14
73 / 100
187 ms262144 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define sort undefined_function // To use stable_sort instead sort #define bpc __builtin_popcount #define ull unsigned long long #define ld double #define ll long long #define mp make_pair #define F first #define S second # pragma GCC optimize("O2") //pragma GCC optimize("my solution") using namespace __gnu_pbds; using namespace std; typedef tree<long long, null_type, less_equal<long long>, rb_tree_tag, tree_order_statistics_node_update> Tree; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const ll INF = 9223372036854775807LL; const ll inf = 2147483647; const ll MOD = 1e9 + 7; //[998244353, 1e9 + 7, 1e9 + 13] ll gcd(ll a, ll b) {return b ? gcd(b, a % b) : a;} ll lcm(ll a, ll b) {return a * b / gcd(a, b);} ll ceil(ll a, ll b) {return (a + b - 1) / b;} int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); int s, n; cin >> s >> n; vector<pair<ll, ll>> v; for (int i = 1; i <= n; i ++) { int v_i, w, k; cin >> v_i >> w >> k; k = min(k, s / w); while (k --) v.push_back({v_i, w}); } vector<ll> dp(s + 1); dp[0] = 0; for (int i = 0; i < v.size(); i ++) for (int j = s; j >= v[i].S; j --) dp[j] = max(dp[j], dp[j - v[i].S] + v[i].F); ll ans = -1; for (int i = 1; i <= s; i ++) ans = max(ans, dp[i]); cout << ans << "\n"; return 0; }

Compilation message (stderr)

knapsack.cpp: In function 'int32_t main()':
knapsack.cpp:53:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |         for (int i = 0; i < v.size(); i ++)
      |                         ~~^~~~~~~~~~
#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...