Submission #1022194

#TimeUsernameProblemLanguageResultExecution timeMemory
1022194JakobZorzPacking Biscuits (IOI20_biscuits)C++17
42 / 100
1095 ms64012 KiB
#include"biscuits.h" #include<unordered_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]; for(int i=0;i<120;i++){ ll num=(coins[i]-x)/2; if(num>0){ coins[i+1]+=num; coins[i]-=2*num; } } return count(0,coins[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...