Submission #1072941

#TimeUsernameProblemLanguageResultExecution timeMemory
1072941IgnutPacking Biscuits (IOI20_biscuits)C++17
33 / 100
28 ms44020 KiB
// Ignut #include <bits/stdc++.h> using namespace std; using ll = long long; ll dp[123][22222]; ll count_tastiness(ll x, vector<ll> a) { int k = a.size(); for (int i = 0; i < k; i ++) { if (a[i] > x) { if (i == a.size() - 1) { a.push_back(0); k ++; } ll del = a[i] - x; if (del % 2 == 1) del --; a[i + 1] += del / 2; a[i] -= del; } } a.push_back(0); k ++; // for (int val : a) cerr << val << ' '; // cout << '\n'; int lim = 2 * x + 2; for (int i = 0; i <= k; i ++) for (int v = 0; v <= lim; v ++) dp[i][v] = 0; dp[0][0] = 1; for (int i = 0; i < k; i ++) { for (int prev = 0; prev <= lim; prev ++) { ll val = a[i] + prev / 2; val = min(val, 1ll * lim); // take 1 if (val >= x) dp[i + 1][val - x] += dp[i][prev]; // take 0 dp[i + 1][val] += dp[i][prev]; } } // for (int i = 0; i <= k; i ++) { // for (int v = 0; v <= 3; v ++) { // cout << dp[i][v] << ' '; // } // cout << '\n'; // } ll res = 0; for (int v = 0; v <= lim; v ++) res += dp[k][v]; return res; }

Compilation message (stderr)

biscuits.cpp: In function 'll count_tastiness(ll, std::vector<long long int>)':
biscuits.cpp:14:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |             if (i == a.size() - 1) {
      |                 ~~^~~~~~~~~~~~~~~
#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...