Submission #1035856

#TimeUsernameProblemLanguageResultExecution timeMemory
1035856Mr_HusanboyPacking Biscuits (IOI20_biscuits)C++17
0 / 100
1075 ms157980 KiB
#include "biscuits.h"
#include <bits/stdc++.h>
 
using namespace std;
 
#define ll long long
#define all(a) (a).begin(), (a).end()
#define ff first
#define ss second
 
template<typename T>
int len(T &a){return a.size();}
 
mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
 
vector<ll> cnt;
ll x;
 
map<pair<int,ll>,ll> mp;
 
ll count(int i, ll j){
	if(i == 63){
		return j >= 0;
	}
	if(mp.count({i, j})) return mp[{i, j}];
 
	j += cnt[i];
	ll res = 0;
	res += count(i + 1, j / 2);
	if(j >= x){
		res += count(i + 1, (j - x) / 2);
	}
	return mp[{i, j}] = res;
}
 
long long count_tastiness(long long X, vector<long long> A) {
	cnt = A;
	x = X;
	while(len(cnt) < 63){
		cnt.push_back(0);
	}

	return count(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...