제출 #769738

#제출 시각아이디문제언어결과실행 시간메모리
769738boris_mihov비스킷 담기 (IOI20_biscuits)C++17
21 / 100
1088 ms52880 KiB
#include "biscuits.h" #include <algorithm> #include <iostream> #include <numeric> #include <cassert> #include <vector> #include <map> typedef long long llong; const int MAXN = 64; const int INF = 1e9; int n; llong x; llong a[MAXN]; std::map <std::pair <int,llong>, llong> mem; llong rec(int pos, llong prenos) { if (pos >= n) { return prenos / x + 1; } if (mem.count({pos, 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.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...