Submission #1240499

#TimeUsernameProblemLanguageResultExecution timeMemory
1240499Muhammad_AneeqPacking Biscuits (IOI20_biscuits)C++20
12 / 100
1096 ms412 KiB
#include "biscuits.h"
#include <vector>
#include <iostream>
using namespace std;
#define ll long long
int const N=61;
ll tot[N]={};
ll org[N]={};
ll sol(ll j,ll sb)
{
	if (j<0)
		return 1;
	ll tsb=sb;
	ll z=min(org[j],sb);
	sb-=z;
	if (sb>tot[j])
		return 1;
	if ((1ll<<j)<tot[j]-sb)
		return sol(j-1,tsb+sb)+(1ll<<(j));
	return sol(j-1,tsb);
}
long long count_tastiness(long long x, vector<long long> a) 
{
	if (x==1)
	{	
		int n=a.size();
		ll ans=1;
		ll cur=0;
		for (int i=n-1;i>=0;i--)
		{
			if (a[i]==0)
			{
				ans=(ans*(cur+1));
				cur=0;
			}
			else
			{
				cur=cur*2+a[i];
			}
		}
		ans=(ans*(cur+1));
		return ans;
	}
	int ans=0;
	int n=a.size();
	for (int i=0;i*x<=1e5+10;i++)
	{
		vector<ll>b=a;
		bool w=1;
		for (int j=0;j<x;j++)
		{
			int z=i;
			for (int k=n-1;k>=0;k--)
			{
				int g=min(b[k],z/(1ll<<k));
				b[k]-=g;
				z-=(g<<k);
			}
			if (z>0)
			{
				w=0;
				break;
			}
		}
		ans+=w;
	}
	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...