Submission #314895

#TimeUsernameProblemLanguageResultExecution timeMemory
314895kostia244Packing Biscuits (IOI20_biscuits)C++17
21 / 100
1105 ms70264 KiB
#include "biscuits.h"
#include<bits/stdc++.h>
#define all(x) begin(x), end(x)
using namespace std;
using ll = long long;
const int B = 126, C = 10005;
ll count_tastiness(ll x, vector<ll> a) {
 	map<ll, ll> dp[B+1];
   	a.resize(B);
   	for(int i = 0; i+1 < B; i++) {
   		ll t = max(0ll, a[i]-x);
   		t -= t&1;
   		a[i] -= t;
   		a[i+1] += t/2;
   	}
   	dp[0][0] = 1;
   	for(int i = 0; i < B; i++)
   		for(auto [r, val] : dp[i]) {
			dp[i+1][(a[i]+r)/2] += val;
   			if(a[i]+r >= x) dp[i+1][(a[i]+r-x)/2] += val;
   		}
   	return dp[B][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...