Submission #1312961

#TimeUsernameProblemLanguageResultExecution timeMemory
1312961BigBadBullyPacking Biscuits (IOI20_biscuits)C++20
42 / 100
1096 ms24012 KiB
#include "biscuits.h"
#include <bits/stdc++.h>
#define ll long long
#define pii pair<ll,ll>
#define ff first
#define ss second
using namespace std;
ll count_tastiness(ll x, vector<ll> a) {
	ll n = a.size();
    auto v = a;    
	while(v.size()<62)
		v.push_back(0);
    for (ll i = 0; i < 62; i++)
	{
		ll ol = v[i];
		if (v[i]>x)
			v[i] = x+(v[i]-x)%2,v[i+1]+=(ol-v[i])/2;
	}
	map<ll,ll> prev;
	prev[0] = 1;
	map<ll,ll> neu;
	for(ll i = 0; i < 62;i++)
	{
		for(pii x: prev)
			neu[x.ff+v[i]]+=x.ss;
		for(pii u:neu)
			if(u.ff>=x)
				neu[u.ff-x]+=u.ss;
		prev.clear();
		for(pii x:neu)
			prev[x.ff/2]+=x.ss;
		neu.clear();
		
	}
	ll sum = 0;
	for(pii x:prev)
		sum+=x.ss;
    return sum;

}
#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...