Submission #1229319

#TimeUsernameProblemLanguageResultExecution timeMemory
1229319TrumlingPacking Biscuits (IOI20_biscuits)C++20
12 / 100
1 ms468 KiB
#include "biscuits.h"
//Trumling ©
//Αφόδευε υψηλά και ηγνάντει 
#include <bits/stdc++.h>
using namespace std; 
 
typedef long long ll;
#define pb push_back
#define F first
#define S second
#define enter cout<<'\n';
#define INF 99999999999999
#define MOD 1000000007
#define all(x) x.begin(),x.end()

long long count_tastiness(long long x, vector<long long> a) {

	vector<ll>dp(121,0);
	vector<ll>arr(121,0);

	for(int i=0;i<a.size();i++)
		arr[i]=a[i];
		
	queue<ll>q;
	for(int i=0;i<120;i++)
	{
		ll give=(arr[i]-1)/2;
		arr[i+1]+=give;
		arr[i]-=give*2;

		if(!arr[i])
			q.push(i);
	}

	for(int i=0;i<=120;i++)
	{
		if(i>0)
		{
			if(arr[i]==0)
				{
					q.pop();
					dp[i]+=dp[i-1];
				}
			else
				{
					dp[i]+=dp[i-1]*2;
					if(arr[i]==2)
						dp[q.front()]+=dp[i-1];
				}
		}
		else
		{
			if(arr[i]==0)
				{
					q.pop();
					dp[i]=1;
				}
			else
				{
					dp[i]=2;
					if(arr[i]==2)
						dp[q.front()]++;
				}
		}
	}

	return dp[120];
}

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