제출 #696062

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

typedef long long ll;

long long count_tastiness(long long x, std::vector<long long> a) {
	if(x == 1) {
        for(int i = (int)a.size()-1; i > 0; i--) if(a[i-1]) a[i-1] += 2*a[i], a[i] = 0;

        ll res = 1;
        for(ll x : a) res *= (x+1);
        return res;
	}

	ll ans = 0;
	for(int v = 0; v <= 100000; v++) {
        vector<ll> b = a;
        int idx = (int)a.size()-1;
        bool ok = true;
        for(int j = 20; j >= 0; j--) {
            if((v>>j)&1) {
                while(idx > j) idx--;

                bool flag = false;
                int cnt = x;
                while(cnt) {
                    while(idx >= 0 && b[idx] < (1<<(j-idx))) idx--;
                    if(idx == -1) {
                        flag = true;
                        break;
                    }

                    b[idx] -= (1<<(j-idx)); cnt--;
                }

                if(flag) {
                    ok = false;
                    break;
                }
            }
        }

        if(ok) ans++;
	}

	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...