# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1022077 | JakobZorz | Packing Biscuits (IOI20_biscuits) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include"biscuits.h"
#include<map>
typedef long long ll;
using namespace std;
ll x;
ll coins[120];
unordered_map<ll,ll>dp[120];
ll count(int i,ll num){
if(i==120)
return 1;
if(dp[i].count(num))
return dp[i][num];
ll res=0;
if(num>=x){
res+=count(i+1,coins[i+1]+(num-x)/2);
}
res+=count(i+1,coins[i+1]+num/2);
dp[i][num]=res;
return res;
}
ll count_tastiness(ll X,vector<ll>a){
x=X;
for(int i=0;i<120;i++){
coins[i]=0;
dp[i].clear();
}
for(int i=0;i<(int)a.size();i++)
coins[i]=a[i];
return count(0,coins[0]);
}