Submission #466013

#TimeUsernameProblemLanguageResultExecution timeMemory
466013bluePacking Biscuits (IOI20_biscuits)C++17
9 / 100
1082 ms1388 KiB
#include "biscuits.h"
#include <vector>
using namespace std;

//x = number of people (p)
//y = tastiness of each bag (i)

long long count_tastiness(long long x, vector<long long> a)
{
	int k = a.size();
	long long ans = 0;

	long long a_sum = 0;
	for(int i = 0; i < k; i++)
		a_sum += a[i] * (1 << i);


	if(x > a_sum) return 1;

	for(long long y = 0; x*y <= a_sum; y++)
	{
		vector<long long> value(x, 0);

		vector<long long> A = a;

		for(int i = k-1; i >= 0; i--)
		{
			for(int p = 0; p < x; p++)
			{
				int G = min(A[i], (y - value[p])/(1 << i));
				value[p] += (1 << i)*G;
				A[i] -= G;
			}
		}

		bool good = 1;
		for(int p = 0; p < x; p++)
			if(value[p] != y)
				good = 0;

		if(good)
			ans++;
	}

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