Submission #749040

#TimeUsernameProblemLanguageResultExecution timeMemory
749040DJeniUpPacking Biscuits (IOI20_biscuits)C++17
12 / 100
1070 ms12548 KiB
#include "biscuits.h"
#include "bits/stdc++.h"
#pragma GCC optimize("O3")

using namespace std;

typedef long long ll;

map<ll,ll>m[67];
ll k,n,d[67];

ll S(ll x,ll y){
    if(x>=k && y<n)return 1;
    y+=d[x];
    if(y<n)return S(x+1,y/2);
    //cout<<"! "<<x<<" "<<y<<endl;
    if(m[x][y]!=0)return m[x][y];
    m[x][y]+=S(x+1,y/2);
    if(y>=n)m[x][y]+=S(x+1,(y-n)/2);
    //cout<<x<<" "<<y<<" "<<m[x][y]<<endl;
    return m[x][y];
}

long long count_tastiness(long long x, std::vector<long long> a) {
    k=a.size();
    n=x;
    for(int i=0;i<=65;i++){
        m[i].clear();
        d[i]=0;
    }
    ll y=1;
    
    for(int i=0;i<k;i++){
        d[i]=a[i];
    }
    while(n%2==0){
        for(int i=60;i>=0;i--){
            d[i+1]+=d[i]/2;
            d[i]%=2;
        }
        n/=2;
    }
    //cout<<"! "<<S(0,0)<<endl;
    return S(0,0);
}

Compilation message (stderr)

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:31:8: warning: unused variable 'y' [-Wunused-variable]
   31 |     ll y=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...