This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#include "biscuits.h"
using namespace std;
typedef long long ll;
map< pair<int,ll>, ll> dp;
ll rec(ll x, const vector<ll> &a, int idx, ll extra) {
	if (idx >= a.size())
		return extra/x + 1;
	if (dp.find( pair<int,ll>(idx, extra) ) != dp.end())
		return dp[ pair<int,ll>(idx, extra) ];
	ll avail = extra + a[idx];
	return dp[ pair<int,ll>(idx, extra) ] =
		(avail >= x ? rec(x, a, idx+1, (avail-x)/2) : 0)
		+ rec(x, a, idx+1, avail/2);
}
ll count_tastiness(ll x, vector<ll> a) {
	dp.clear();
	return rec(x, a, 0, 0);
}
Compilation message (stderr)
biscuits.cpp: In function 'll rec(ll, const std::vector<long long int>&, int, ll)':
biscuits.cpp:9:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 |  if (idx >= a.size())
      |      ~~~~^~~~~~~~~~~| # | 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... |