제출 #1324304

#제출 시각아이디문제언어결과실행 시간메모리
1324304enzyPacking Biscuits (IOI20_biscuits)C++20
0 / 100
383 ms10184 KiB
#include "biscuits.h"
#include<bits/stdc++.h>
#define ll long long
const int maxk=62;
const int maxx=20010;
ll dp[maxk][maxx];
using namespace std;
long long count_tastiness(long long x, vector<long long> a){
	memset(dp,0ll,sizeof(dp));
	for(int i=0;i<a.size()-1;i++){
		ll aux=a[i]-x; 
		if(aux<0) continue;
		a[i]=x+(aux%2);
		a[i+1]+=(aux/2);
	}
	a.back()=min(a.back(),x);
	dp[0][0]=1;
	for(int i=1;i<=a.size();i++){
		ll at=a[i-1];
		ll falta=x-at, ini=falta;
		if(ini<0) ini=0;
		for(int j=ini;j<maxx;j++){
			dp[i][((j-falta)/2)]+=dp[i-1][j];
		}
		for(ll j=at;max(j-at,j/2)<maxx;j++){
			dp[i][j/2]+=dp[i-1][j-at];
		}
	}
	ll resp=0;
	for(int i=0;i<maxx;i++) resp+=dp[a.size()][i];
	return resp;
}

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