Submission #329244

#TimeUsernameProblemLanguageResultExecution timeMemory
329244nikatamlianiPacking Biscuits (IOI20_biscuits)C++14
0 / 100
2 ms364 KiB
#include <bits/stdc++.h> #include "biscuits.h" using namespace std; using ll = long long; ll count_tastiness(ll x, vector<ll> a) { ll ans = 1; for(int i = 0; i < a.size(); ++i) { if(a[i] == 0) continue; ll sub = (a[i] - 1) / 2 * 2; a[i+1] += sub / 2; a[i] -= sub; } while(true) { ll sub = (a.back() - 1) / 2 * 2; if(!sub) break; a.back() -= sub; a.push_back(sub / 2); } a.insert(a.begin(), 0); int n = a.size(); vector<vector<vector<ll>>> dp(n+1, vector<vector<ll>>(2, vector<ll>(2, 0))); dp[0][0][0] = 1; for(int i = 0; i < n; ++i) { bool added[2][2][2]; memset(added, 0, sizeof added); for(int he = 0; he < 2; ++he) { for(int me = 0; me < 2; ++me) { for(int take = 0; take <= a[i]; ++take) { int new_me = take + me; int new_he = new_me / 2; new_me -= new_he * 2; if(added[he][new_me][new_he]) continue; added[he][new_me][new_he] = 1; dp[i+1][new_me][new_he] += dp[i][he][me]; } } } } return dp[n][0][0] + dp[n][1][0] + dp[n][0][1] + dp[n][1][1]; }

Compilation message (stderr)

biscuits.cpp: In function 'll count_tastiness(ll, std::vector<long long int>)':
biscuits.cpp:7:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    7 |  for(int i = 0; i < a.size(); ++i) {
      |                 ~~^~~~~~~~~~
biscuits.cpp:6:5: warning: unused variable 'ans' [-Wunused-variable]
    6 |  ll ans = 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...