Submission #1052108

#TimeUsernameProblemLanguageResultExecution timeMemory
1052108aykhnPacking Biscuits (IOI20_biscuits)C++17
0 / 100
1094 ms63312 KiB
#include "biscuits.h"
#include <bits/stdc++.h>
 
using namespace std;
 
long long x, k;
vector<long long> a;
map<array<long long, 2>, long long> mp;
 
long long cnt(long long ind, long long s)
{
	if (ind == 60) return 1LL;
	if (mp.find({ind, s}) != mp.end()) return mp[{ind, s}];
	if (ind < k) s += a[ind];
	long long A = cnt(ind + 1, (s >> 1));
	long long B = (x <= s ? cnt(ind + 1, ((s - x) >> 1LL)) : 0LL);
	return mp[{ind, s}] = A + B;
}
 
long long count_tastiness(long long X, vector<long long> A) 
{
	mp.clear();
	x = X, a = A, k = A.size();
	return cnt(0LL, 0LL);
}
#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...