# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
602244 | PiejanVDC | 비스킷 담기 (IOI20_biscuits) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "biscuits.h"
#include <bits/stdc++.h>
using namespace std;
long long X;
vector<long long>v;
map<long long, long long>mp[61];
long long dp(int i, long long cnt) {
if(i == 61)
return 1;
if(mp[i].count(cnt))
return mp[i][cnt];
long long ret = 0;
if(cnt + v[i] >= X)
ret = dp(i+1, (cnt + v[i] - X)/2);
ret += dp(i+1, (cnt+v[i])/2);
return mp[i][cnt] = ret;
}
long long count_tastiness(long long x, vector<long long>a) {
X = x;
v = a;
for(int i = a.size() ; i < K ; i++)
v.push_back(0);
for(int i = 0 ; i < 61 ; i++)
mp.clear();
return dp(0, 0);
}