Submission #1292846

#TimeUsernameProblemLanguageResultExecution timeMemory
1292846julia_08Packing Biscuits (IOI20_biscuits)C++20
0 / 100
62 ms115548 KiB
#include <bits/stdc++.h>
#include "biscuits.h"

using ll = long long;

using namespace std;

const int MAXN = 65;

ll pref[MAXN];

vector<vector<ll>> dp;

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

	int k = (int) a.size();

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

	for(int i=0; i<k; i++) pref[i + 1] += pref[i] / 2;

	dp.resize(k + 2, vector<ll> (k * x / 2 + 1));

	int sum = (x / 2) * k;

	for(int j=0; j<=sum; j++) dp[k][j] = 1;

	for(int i=(k - 1); i>=0; i--){

		sum = (x / 2) * i;

		for(int j=0; j<=sum; j++){

			dp[i][j] = 0;

			ll cur = pref[i] - j;

			dp[i][j] += dp[i + 1][j];
			if(cur >= x) dp[i][j] += dp[i + 1][(j + x) / 2];

		}

	}

	return dp[0][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...