#include "biscuits.h"
#include<bits/stdc++.h>
using namespace std;
const int N = 70;
long long dp[N][2][2];
long long count_tastiness(long long x, std::vector<long long> a) {
for(int i = 0;i < a.size();i++){
if(a[i] > 2){
int d = (a[i]-1)/2;
if(i == a.size()-1) a.push_back(0);
a[i+1] += d;
a[i] -= 2*d;
}
}
a.push_back(0);
a.push_back(0);
dp[0][0][0] = 1;
dp[0][0][1] = (a[0] == 2);
dp[0][1][0] = (a[0] >= 1);
dp[0][1][1] = 0;
for(int i = 1;i <= a.size();i++){
dp[i][0][0] = dp[i-1][0][0] + dp[i-1][1][0];
dp[i][1][0] = (a[i] == 0 ? dp[i-1][0][1] + dp[i-1][1][1] : dp[i-1][0][0] + dp[i-1][1][0]);
dp[i][0][1] = (a[i] == 0 ? 0 : (a[i] == 1 ? dp[i-1][0][1] + dp[i-1][1][1] : dp[i-1][0][0] + dp[i-1][1][0]));
dp[i][1][1] = (a[i] == 2 ? dp[i-1][0][1] + dp[i-1][1][1] : 0);
//cout << dp[i][0][0] << ' ' << dp[i][0][1] << ' ' << dp[i][1][0] << ' ' << dp[i][1][1] << endl;
}
return dp[a.size()][0][0] + dp[a.size()][1][0];
}
# | 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... |