제출 #1041368

#제출 시각아이디문제언어결과실행 시간메모리
1041368vjudge1비스킷 담기 (IOI20_biscuits)C++17
9 / 100
1098 ms987384 KiB
#include "biscuits.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
map<ll,ll> dp,dp2;
ll lim;
int check(ll k,ll x,vector<ll>a){
    if(k>lim) return 0;
    for(int i=0;i<60;i++){
        if(k&1ll<<i)
            a[i]-=x;
        if(a[i]<0)
            return 0;
        a[i+1]+=a[i]/2;
    }
    return 1;
}
ll count_tastiness(ll x, std::vector<ll> a) {
    while(a.size()<=60)
        a.push_back(0);
    lim=0;
    for(int i=0;i<60;i++)
        lim+=a[i]<<i;
    lim/=x;
    int ans=0;
    queue<pair<ll,int>> q;
    q.push({0,0});
    while(q.size()){
        auto[v,b]=q.front();
        q.pop();
        if(!check(v,x,a))continue;
        ans++;
        for(int i=b;i<60;i++)
            q.push({v|1ll<<i,i+1});
    }
    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...