Submission #1042690

#TimeUsernameProblemLanguageResultExecution timeMemory
1042690DorostWef비스킷 담기 (IOI20_biscuits)C++17
0 / 100
1079 ms63272 KiB
#include "biscuits.h"
#include <bits/stdc++.h>

#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")

using namespace std;

#define int long long
map <int, int> mp[61];
int a[61], x;

int solve (int b, int k) {
	if (b == 60)
		return 1;
	if (mp[b][k])
		return mp[b][k];
	int ans = solve (b + 1, ((a[b] + k) / 2));
	if ((a[b] + k) >= x) {
		ans += solve (b + 1, ((a[b] + k - x) / 2));
	}
	return mp[b][k] = ans;
}

long long count_tastiness(long long xx, std::vector<long long> aa) {
	for (int i = 0; i < 61; i++)
		mp[i].clear();
	x = xx;
	for (int i = 0; i < (int)aa.size(); i++)
		a[i] = aa[i];
	return solve (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...