Submission #329247

#TimeUsernameProblemLanguageResultExecution timeMemory
329247nikatamliani비스킷 담기 (IOI20_biscuits)C++14
12 / 100
7 ms492 KiB
#include <bits/stdc++.h>
#include "biscuits.h"
using namespace std;
using ll = long long;
ll count_tastiness(ll x, vector<ll> a) {
	ll ans = 1;
	for(int i = 0; i < (int)a.size() - 1; ++i) {
		ll sub = (a[i] - 1) / 2 * 2;
		a[i+1] += sub / 2;
		a[i] -= sub; 
	}
	while(true) {
		ll sub = (a.back() - 1) / 2 * 2;
		if(!sub) break;
		a.back() -= sub; 
		a.push_back(sub / 2);
	}
	a.insert(a.begin(), 0);
	int n = a.size();
	vector<vector<vector<ll>>> dp(n+1, vector<vector<ll>>(2, vector<ll>(2, 0)));
	dp[0][0][0] = 1; 
	for(int i = 0; i < n; ++i) {
		bool added[2][2][2];
		memset(added, 0, sizeof added);
		for(int he = 0; he < 2; ++he) {
			for(int me = 0; me < 2; ++me) {
				for(int take = 0; take <= a[i]; ++take) {
					int new_me = take + me;
					int new_he = new_me / 2;
					new_me -= new_he * 2;
					if(added[he][new_me][new_he]) continue;
					added[he][new_me][new_he] = 1;
					dp[i+1][new_me][new_he] += dp[i][he][me];
				}
			}
		}
	}
	return dp[n][0][0] + dp[n][1][0] + dp[n][0][1] + dp[n][1][1];
}

Compilation message (stderr)

biscuits.cpp: In function 'll count_tastiness(ll, std::vector<long long int>)':
biscuits.cpp:6:5: warning: unused variable 'ans' [-Wunused-variable]
    6 |  ll ans = 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...