Submission #1023538

#TimeUsernameProblemLanguageResultExecution timeMemory
1023538Ahmed_Solyman비스킷 담기 (IOI20_biscuits)C++14
0 / 100
97 ms436 KiB
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

ll count_tastiness(ll x,vector<ll> a){
    if(x==1){
        while(a.size()<=60)a.push_back(0);
        ll ans=1;
        int j=0;
        for(int i=0;i<60;i++){
            if(!a[i])ans*=1LL<<i-j,j=i+1;
            else{
                if(a[i]>=3)a[i+1]+=a[i]>>1LL;
            }
        }
        return ans;
    }
    if(x>100000)return 1;
    int k=(int)a.size();
    vector<ll>g=a;
    int ret=0;
    for(int y=0;y<=100000/x+5;y++){
        a=g;
        int cnt=0;
        for(int j=0;j<x;j++){
            ll u=y;
            for(int p=k-1;p>=0;p--){
                ll t=min(a[p],u/(1LL<<p));
                a[p]-=t;
                u-=t*(1LL<<p);
            }
            if(!u)++cnt;
        }
        ret+=(cnt==x);
    }
    return ret;
}

Compilation message (stderr)

biscuits.cpp: In function 'll count_tastiness(ll, std::vector<long long int>)':
biscuits.cpp:12:33: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
   12 |             if(!a[i])ans*=1LL<<i-j,j=i+1;
      |                                ~^~
#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...