제출 #600974

#제출 시각아이디문제언어결과실행 시간메모리
600974PiejanVDC비스킷 담기 (IOI20_biscuits)C++17
0 / 100
1 ms340 KiB
#include "biscuits.h"
#include <bits/stdc++.h>
using namespace std;

int K, X;

vector<long long>v;

vector<map<long long, long long>>mp;

long long dp(int i, long long cnt) {
    if(i == K || (long long)1e18 / (1LL << i) < X)
        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;
    K = (int)a.size();
    v = a;
    mp.clear();
    mp.resize(K);
    return dp(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...