제출 #1356766

#제출 시각아이디문제언어결과실행 시간메모리
1356766Sacharlemagne비스킷 담기 (IOI20_biscuits)C++20
9 / 100
1095 ms836 KiB
#include "biscuits.h"

using namespace std;

typedef long long ll;
typedef vector<ll> vll;
ll ans = 0;
vll A;
void backtrack(int ind, ll x, vll &a) {
    if (ind == a.size()-1 && a[ind] < x) return;
    if (a[ind] >= x) {
        ++ans;
        // i must be x
        ll ad = (a[ind]-x)/2;
        if (a.size() == ind+1) a.push_back(0);
        a[ind+1] += ad;
        backtrack(ind+1, x, a);
        a[ind+1] -= ad;
        if (a.size() == ind+2 && !a[ind+1]) a.pop_back();
    }
    if (a.size() == ind+1) a.push_back(0);
    a[ind+1] += a[ind]/2;
    backtrack(ind+1, x, a);
    a[ind+1] -= a[ind]/2;
    if (a.size() == ind+2 && !a[ind+1]) a.pop_back();
}

ll count_tastiness(ll x, vll a) {
    while (!a.back()) a.pop_back();
    if (a.empty()) return 1;
    ans = 0;
    backtrack(0, x, a);
    return ans + 1;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…