Submission #1240377

#TimeUsernameProblemLanguageResultExecution timeMemory
1240377Ghulam_Junaid비스킷 담기 (IOI20_biscuits)C++20
0 / 100
1 ms324 KiB
#include <bits/stdc++.h>
#include "biscuits.h"
using namespace std;

typedef long long ll;

ll f(vector<ll> vec){
    ll sz = vec.size();
    if (sz == 0) return 1;

    if (vec.back()){
        vec.pop_back();
        return f(vec);
    }

    ll cur = (1ll << (sz - 1));
    for (ll i = sz - 2; i >= 0; i --){
        if (cur >= (1ll << i) and vec[i]){
            ll quo = min(vec[i], cur / (1ll << i));
            vec[i] -= quo;
            cur -= quo * (1ll << i);
        }
    }

    if (cur == 0) return f(vec);
    return 0;
}

ll count_tastiness(ll x, vector<ll> a){
    ll k = a.size();
    ll ans = 1, sm = 0;
    for (ll i = 0; i < k; i ++)
        sm += a[i] * (1ll << i);

    vector<ll> cpy = a, vec;
    for (int i = 0; i < k; i ++){
        vec.push_back(a[i]);
        ans += f(vec);
    }

	return ans;
}
#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...