Submission #749006

#TimeUsernameProblemLanguageResultExecution timeMemory
749006DJeniUpPacking Biscuits (IOI20_biscuits)C++17
21 / 100
1082 ms21192 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<1)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;
    }
    for(int i=0;i<k;i++){
        d[i]=a[i];
    }
    //cout<<"! "<<S(0,0)<<endl;
    return S(0,0);
}

#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...