# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
497632 | Hanksburger | Packing Biscuits (IOI20_biscuits) | C++17 | 188 ms | 368 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "biscuits.h"
#include <bits/stdc++.h>
using namespace std;
vector<long long> B;
long long pow2[65];
long long count_tastiness(long long X, vector<long long> A)
{
pow2[0]=1;
for (long long i=1; i<=62; i++)
pow2[i]=pow2[i-1]*2;
long long N=A.size(), sum=0;
for (long long i=0; i<A.size(); i++)
sum+=pow2[i]*A[i];
if (sum<=100000)
{
long long cnt=1;
for (long long i=1; i<=sum/X; i++)
{
B=A;
bool ok=1;
for (long long j=0; j<X; j++)
{
long long cur=i;
for (long long k=N-1; k>=0; k--)
{
long long num=min(B[k], cur/pow2[k]);
B[k]-=num;
cur-=pow2[k]*num;
if (!cur)
break;
}
if (cur)
{
ok=0;
break;
}
}
if (ok)
cnt++;
}
return cnt;
}
else if (X==1)
{
long long P=1, Q=1, R=0;
for (long long i=0; i<N; i++)
{
Q+=A[i];
if (Q&1)
R+=P;
Q/=2;
if (Q==0)
{
Q=1;
P=R;
R=0;
}
else
P*=2;
}
return P*Q+R;
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |