Submission #1303674

#TimeUsernameProblemLanguageResultExecution timeMemory
1303674thelegendary08Packing Biscuits (IOI20_biscuits)C++17
0 / 100
1 ms572 KiB
#include "biscuits.h" #include<bits/stdc++.h> #define int long long #define pb push_back #define mp make_pair #define vi vector<int> #define f0r(i,n) for(int i = 0; i<n; i++) #define FOR(i, k, n) for(int i = k; i<n; i++) #define dout(x) cout<<x<<' '<<#x<<'\n'; #define vout(x) for(auto u : x)cout<<u<<' '; cout<<'\n'; #define vb vector<bool> using namespace std; map<pair<int,int>,int>ans; vi p; int f(int x, int y){ // cout<<x<<' '<<y<<'\n'; if(ans.count(mp(x,y)))return ans[mp(x,y)]; if(x==0)return 1; if(y==1)return 2; int r1 = x - (1LL << (y-1)); int res = 0; if(r1 >= 0){ r1 = min(r1, p[y-1]); res += f(r1, y-1); } int r2 = x; r2 = min(r2, p[y-1]); res += f(r2, y-1); ans[mp(x,y)] = res; return res; } long long count_tastiness(long long x, std::vector<long long> a) { int n = a.size(); p.resize(n+1); p[1] = a[0]; FOR(i,2,n+1)p[i] = p[i-1] + (1LL << (i-1)) * a[i-1]; f0r(i,n+1)p[i]/=x; return f(p[n], n); return 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...