제출 #432422

#제출 시각아이디문제언어결과실행 시간메모리
432422MOUF_MAHMALATPacking Biscuits (IOI20_biscuits)C++14
0 / 100
1 ms332 KiB
#include "biscuits.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<ll>a;
ll x,n,dp[65];
ll best(ll d)
{
    if(d==-1)
        return 1;
    ll &r=dp[d];
    //cout<<d<<" "<<r<<endl;
    if(r!=-1)
        return r;
    r=best(d-1);
    ll c=0;
    for(ll i=d; i>=0; i--)
    {
        c+=a[i]/(1<<(d-i));
        //cout<<d<<" * "<<c<<endl;
        //cout<<d<<" "<<i<<" "<<c<<endl;
        if(c>=x){
            //cout<<d<<"-> "<<i-1<<endl;
            return r+=best(i-1);
        }
    }
    return r;
}
long long count_tastiness(ll X, vector<ll> A)
{
    x=X,a=A,n=a.size();
    for(ll i=0; i<n; i++)
    {
        if(a[i]<x)
            continue;
        ll op=(a[i]-x)/2;
        a[i]-=op;
        if(i<n-1)
            a[i+1]+=op;
    }
    /*for(ll i=0;i<n;i++)
        cout<<a[i]<<" ";
    cout<<endl;*/
    memset(dp,-1,sizeof dp);
    return best(n-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...