#include <bits/stdc++.h>
#include "biscuits.h"
using namespace std;
using ll = long long;
using pii = pair<int, int>;
#define f first
#define s second
const int mX = 1e5+5;
ll dp[61][mX];
vector<ll> a;
ll x;
ll f(int i, int w) {
if (i==60) return 1;
if (dp[i][w] != -1) return dp[i][w];
ll caso1 = f(i+1, (w+a[i])/2);
ll caso2=0;
if (w+a[i]>=x) caso2 = f(i+1, (w+a[i]-x)/2);
return dp[i][w] = caso1+caso2;
}
ll count_tastiness(ll X, vector<ll> A) {
x = X, a = A;
while (a.size()<61) a.push_back(0);
for (int i=0; i<60; i++) {
if (a[i]>x+1) {
a[i+1] += (a[i]-x)/2;
a[i] -= ((a[i]-x)/2)*2;
}
}
memset(dp, -1, sizeof(dp));
return f(0, 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... |