제출 #824080

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

const int T = 120;
long long count_tastiness(long long x, std::vector<long long> a) {
    int k = a.size();
    int ans = 0;
    int sum = 0;
    for (int i = 0; i < k; i++)
        sum += a[i] << i;
    vector<int> vals;
    for (int i = 0; i < k;i ++) {
        for (int j = 0; j < a[i]; j++)
            vals.push_back(1 << i);
    }

    for (int y = 0; y <= sum / x; y++) {
        auto b = a;
        vector<int> done(x, 0);
        int j = 0;
        for (int i = k-1; i >= 0; i--) {
            for (int jj = 0; jj < x; jj++) {
                ll diff = y - done[j];
                ll need = diff >> i;
                ll use = min(need, b[i]);
                b[i] -= use;
                done[j] += use << i;
                if (b[i] == 0) break;
                j = (j+1) % x;
            }
        }
        bool ok = true;
        for (int i : done) ok &= i == y;
        ans += ok;
    }
    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...