#include "biscuits.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll count_tastiness(ll x, vector<ll> a) {
int k = a.size();
for (int i = 0; i < k-1; i++) {
ll extra = a[i] - 1;
if (extra <= 0) continue;
a[i+1] += extra / 2LL;
if (a[i] % 2) a[i] = 1;
else a[i] = 2;
}
for (int i = 0; i < k; i++) assert(a[i] <= 2);
vector<ll> po(k);
po[0] = 1LL;
for (int i = 1; i < k; i++) po[i] = po[i-1] * 2LL;
vector<vector<ll>> dp(k, vector<ll>(2, 0LL));
if (a[0]) {
dp[0][0] = dp[0][1] = 1;
}
else {
dp[0][0] = 1;
dp[0][1] = 0;
}
for (int i = 1; i < k; i++) {
if (a[i]) {
dp[i][0] = dp[i-1][0] + dp[i-1][1];
dp[i][1] = dp[i-1][0] + dp[i-1][1];
}
else {
dp[i][0] = dp[i-1][0] + dp[i-1][1];
for (int j = i-1; j >= 0; j--) {
if (a[j] == 0) break;
if (a[j] == 1) continue;
dp[i][1] += dp[j][0];
}
}
}
return dp[k-1][0] + dp[k-1][1];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |