Submission #1042705

#TimeUsernameProblemLanguageResultExecution timeMemory
1042705DorostWefPacking Biscuits (IOI20_biscuits)C++17
42 / 100
19 ms20056 KiB
#include "biscuits.h" #include <bits/stdc++.h> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2") using namespace std; #define int long long int mp[61][20005]; int a[61], x; int solve (int b, int k) { if (b == 60) return 1; assert (k <= x * 2 + 4); if (mp[b][k]) return mp[b][k]; int ans = solve (b + 1, ((a[b] + k) / 2)); if ((a[b] + k) >= x) { ans += solve (b + 1, ((a[b] + k - x) / 2)); } return mp[b][k] = ans; } long long count_tastiness(long long xx, std::vector<long long> aa) { for (int i = 0; i < 61; i++) { for (int j = 0; j < 20005; j++) mp[i][j] = 0; a[i] = 0; } x = xx; for (int i = 0; i < (int)aa.size(); i++) a[i] = aa[i]; for (int i = 0; i < 61; i++) { if (a[i] >= x) { int w = (a[i] - x) / 2; a[i + 1] += w; a[i] -= w * 2; } } return solve (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...