Submission #1146964

#TimeUsernameProblemLanguageResultExecution timeMemory
1146964LuvidiPacking Biscuits (IOI20_biscuits)C++20
0 / 100
1093 ms484 KiB
#include "biscuits.h"
#include <bits/stdc++.h>
using namespace std;

long long x,ans;
vector<long long> a;

void f(int idx){
	if(idx==a.size())ans++;
	else if(idx==a.size()-1){
		ans+=1+(a[idx]>=x);
	}else{
		a[idx+1]+=a[idx]/2;
		f(idx+1);
		a[idx+1]-=a[idx]/2;
		if(a[idx]>=x){
			a[idx]-=x;
			a[idx+1]+=a[idx]/2;
			f(idx+1);
			a[idx+1]-=a[idx]/2;
			a[idx]+=x;
		}
	}
}

long long count_tastiness(long long X, std::vector<long long> A) {
	x=X;
	a=A;
	for(int i=0;i<a.size();i++){
		if(a[i]>x){
			if(i==a.size()-1)a.push_back(0);
			a[i+1]+=(a[i]-x+1)/2;
			a[i]-=(a[i]-x+1)/2*2;
		}
	}
	ans=0;
	f(0);
	return ans;
}

#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...