Submission #1302223

#TimeUsernameProblemLanguageResultExecution timeMemory
1302223sanoPacking Biscuits (IOI20_biscuits)C++20
0 / 100
1094 ms920 KiB
#include "biscuits.h"
#include <iostream>
#include <queue>
#include <unordered_map>
#include <map>
#define ll long long
#define vec vector
#define For(i, n) for(ll i = 0; i < n; i++)
#define pii pair<int, int>
using namespace std;

long long count_tastiness(long long x, vector<long long> a) {
	ll n = a.size();
	ll vys = 0;
	queue<pii> q;
	q.push({0, 0});
	map<pii, ll> umap;
	umap[{0, 0}] = 1;
	while(!q.empty()){
		ll i = q.front().first, j = q.front().second; q.pop();
		cerr << i << ' ' << j << endl;
		ll hod = umap[{i, j}];
		if(i == n){
			vys += hod * ((j/x) + 1);
			continue;
		}
		for(ll k = 0; k*x <= j; k++){
			if(k == 0) cerr << k << ' ' << x << ' ' << j << endl;
			ll nj = (j - (k*x)) / 2;
			nj += a[i];
			auto pp = umap.find({i+1, nj});
			if(pp == umap.end()){
				q.push({i+1, nj});
			}
			umap[{i+1, nj}] += hod;
		}
	}
	return vys;
}

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