Submission #769740

#TimeUsernameProblemLanguageResultExecution timeMemory
769740boris_mihovPacking Biscuits (IOI20_biscuits)C++17
42 / 100
1077 ms38224 KiB
#include "biscuits.h" #include <unordered_map> #include <algorithm> #include <iostream> #include <numeric> #include <cassert> #include <vector> typedef long long llong; const int MAXN = 64; const int INF = 1e9; int n; llong x; llong a[MAXN]; std::unordered_map <llong, llong> mem[MAXN]; llong rec(int pos, llong prenos) { if (pos == n) { return prenos / x + 1; } if (mem[pos].count(prenos)) { return mem[pos][prenos]; } llong ans = 0; llong curr = a[pos] + prenos; if (curr >= x) ans += rec(pos + 1, (curr - x) / 2); ans += rec(pos + 1, curr / 2); return mem[pos][prenos] = ans; } llong count_tastiness(llong X, std::vector <llong> A) { n = A.size(); x = X; for (int i = 0 ; i < n ; ++i) { a[i] = A[i]; mem[i].clear(); } return rec(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...