Submission #1149999

#TimeUsernameProblemLanguageResultExecution timeMemory
1149999PagodePaiva비스킷 담기 (IOI20_biscuits)C++17
0 / 100
1 ms328 KiB
#include "biscuits.h"
#include<bits/stdc++.h>

using namespace std;

const int N = 100;
long long dp[N][2][2];	
long long count_tastiness(long long x, std::vector<long long> a) {
	for(int i = 0;i < a.size();i++){
		if(a[i] > 2){
			long long d = (a[i]-1)/2;
			if(i == a.size()-1) a.push_back(0);
			a[i+1] += d;
			a[i] -= 2*d;
		}
	}
	a.push_back(0);
	a.push_back(0);
	dp[0][0][0] = 1;
	dp[0][0][1] = (a[0] == 2);
	dp[0][1][0] = (a[0] >= 1);
	dp[0][1][1] = 0;
	for(int i = 1;i <= a.size();i++){
		dp[i][0][0] = dp[i-1][0][0] + dp[i-1][1][0];
		dp[i][1][0] = (a[i] == 0 ? dp[i-1][0][1] + dp[i-1][1][1] : dp[i-1][0][0] + dp[i-1][1][0]);
		dp[i][0][1] = (a[i] == 0 ? 0 : (a[i] == 1 ? dp[i-1][0][1] + dp[i-1][1][1] : dp[i-1][0][0] + dp[i-1][1][0]));
		dp[i][1][1] = (a[i] == 2 ? dp[i-1][0][1] + dp[i-1][1][1] : 0);
		//cout << dp[i][0][0] << ' ' << dp[i][0][1] << ' ' << dp[i][1][0] << ' ' << dp[i][1][1] << endl;
	}
	return dp[a.size()][0][0] + dp[a.size()][1][0]+dp[a.size()][0][1] + dp[a.size()][1][1];
}
#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...