Submission #1032615

#TimeUsernameProblemLanguageResultExecution timeMemory
103261512345678Packing Biscuits (IOI20_biscuits)C++17
9 / 100
1091 ms600 KiB
#include "biscuits.h"
#include <bits/stdc++.h>

using namespace std;

#define ll long long

#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")

long long count_tastiness(long long x, std::vector<long long> a) {
    ll sm=0, k=min(17ll, (ll)a.size()), res=0;
    for (int i=0; i<k; i++) sm+=(1<<i)*a[i];
    for (int y=1; y*x<=sm; y++)
    {
        vector<ll> cnt=a;
        for (int t=0; t<x; t++)
        {
            ll tmp=y, vl;
            for (int i=k-1; i>=0; i--)
            {
                if ((1<<i)>tmp) continue;
                if ((1<<i)*cnt[i]<=tmp) tmp-=(1<<i)*cnt[i], cnt[i]=0;
                else vl=tmp/(1<<i), tmp-=(1<<i)*vl, cnt[i]-=vl;
            }
            if (tmp!=0) break;
            if (t==x-1) res++;
        }
    }
    return res+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...