Submission #1292693

#TimeUsernameProblemLanguageResultExecution timeMemory
1292693julia_08Packing Biscuits (IOI20_biscuits)C++20
9 / 100
1096 ms584 KiB
#include <bits/stdc++.h>
#include "biscuits.h"

using ll = long long;

using namespace std;

const int MAXN = 70;
const int MAXY = 2e5 + 1;

ll a[MAXN], b[MAXN];

int k;

bool brute(int y, ll x){

	for(int i=0; i<20; i++) b[i] = a[i];

	for(int i=0; i<20; i++){

		if(!(y & (1 << i))){
			b[i + 1] += b[i] / 2;
			continue;
		}

		if(b[i] < x) return false;

		b[i + 1] += (b[i] - x) / 2;

	}

	return true;

}

ll count_tastiness(ll x, vector<ll> a_){

	k = (int) a_.size();

	for(int i=0; i<64; i++) a[i] = 0;

	for(int i=0; i<k; i++) a[i] = a_[i];

	ll ans = 0;

	for(int i=0; i<MAXY; i++) ans += brute(i, x);

	return ans;

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