Submission #1292792

#TimeUsernameProblemLanguageResultExecution timeMemory
1292792SofiatpcPacking Biscuits (IOI20_biscuits)C++20
12 / 100
2 ms576 KiB
#include "biscuits.h"
#include <bits/stdc++.h>

using namespace std;

const int MAXK = 65;
long long dp[2][MAXK];

long long count_tastiness(long long x, vector<long long> a) {
	
	for(int i = 0; i < a.size(); i++){
		if(a[i] > 2){
			if(a.size() == i+1)a.push_back(0);
			a[i+1] += (a[i]-1)/2;
			a[i] -= ((a[i]-1)/2)*2;
		}
	}
	a.push_back(0);
	
	int k = a.size();
	dp[0][k] = 1; 
	for(int i = k-1; i >= 0; i--){
		int x = a[i];
		if(x == 0)dp[0][i] = dp[0][i+1];
		else if(x == 1)dp[0][i] = dp[0][i+1]*2;
		else if(x == 2)dp[0][i] = dp[0][i+1]+dp[1][i+1];

		x = a[i]+1;
		if(x == 1)dp[1][i] = dp[0][i+1]*2;
		else if(x == 2)dp[1][i] = dp[0][i+1]+dp[1][i+1];
		else if(x == 3)dp[1][i] = dp[1][i+1]*2;
	}

	return dp[0][0];
}

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