Submission #1240491

#TimeUsernameProblemLanguageResultExecution timeMemory
1240491Muhammad_Aneeq비스킷 담기 (IOI20_biscuits)C++17
12 / 100
1098 ms328 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;
	for (int i=0;i<=1e5+10;i++)
	{
		vector<ll>b=a;
		bool w=1;
		for (int j=0;j<x;j++)
		{
			int z=i;
			for (int i=b.size()-1;i>=0;i--)
			{
				int g=min(b[i],z/(1ll<<i));
				b[i]-=g;
				z-=(g<<i);
			}
			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...