제출 #1023536

#제출 시각아이디문제언어결과실행 시간메모리
1023536Ahmed_Solyman비스킷 담기 (IOI20_biscuits)C++14
0 / 100
97 ms352 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]-3)>>1LL+1;
            }
        }
        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;
}

컴파일 시 표준 에러 (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;
      |                                ~^~
biscuits.cpp:14:49: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   14 |                 if(a[i]>=3)a[i+1]+=(a[i]-3)>>1LL+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...