Submission #1013396

#TimeUsernameProblemLanguageResultExecution timeMemory
1013396ifateenPacking Biscuits (IOI20_biscuits)C++17
9 / 100
1091 ms436 KiB
#include "biscuits.h"
#include <iostream>
const int MAX = 1e5;
long long count_tastiness(long long x, std::vector<long long> a) {
	if (x > MAX) return 1;
	long long n = a.size();
	long long ans = 1, sm = 0;
	for (long long i = 0; i < n; ++i) sm += a[i] * (1ll << i);
	auto works = [&](long long count) -> bool {
		std::vector<long long> cur = a;
		for (long long i = 0; i < n; ++i) {
			if (count & (1ll << i) && cur[i] < x) return false;
			if (count & (1ll << i)) cur[i] -= x;
			if (i != n - 1) cur[i + 1] += cur[i] >> 1;
		}
		return true;
	};
	for (long long count = 1; count * x <= sm; ++count) {
		ans += works(count);
	}
	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...