Submission #479983

#TimeUsernameProblemLanguageResultExecution timeMemory
479983stefantagaPacking Biscuits (IOI20_biscuits)C++14
9 / 100
1098 ms1100 KiB
#include "biscuits.h" #include <cassert> #include <cstdio> using namespace std; long long sum=0,cop[65]; long long count_tastiness(long long x, std::vector<long long> a) { int k=a.size(); long long p=1,suma=0,lim,t,ok1; for (int i=0;i<k;i++) { suma=suma+p*a[i]; p=p*2; } long long lim2=suma/x,sum1=0; for (lim=0;lim<=lim2;lim++) { for (t=0;t<k;t++) { cop[t]=a[t]; } p=1; ok1=1; for (t=0;t<k;t++) { if ((lim&p)!=0) { cop[t]=cop[t]-x; if (cop[t]<0) { ok1=0; break; } } cop[t+1]+=(cop[t]/2); p=p*2; } sum1=sum1+ok1; } return sum1; } #ifdef HOME int main() { int q; assert(scanf("%d", &q) == 1); vector<int> k(q); vector<long long> x(q); vector<vector<long long>> a(q); vector<long long> results(q); for (int t = 0; t < q; t++) { assert(scanf("%d%lld", &k[t], &x[t]) == 2); a[t] = vector<long long>(k[t]); for (int i = 0; i < k[t]; i++) { assert(scanf("%lld", &a[t][i]) == 1); } } fclose(stdin); for (int t = 0; t < q; t++) { results[t] = count_tastiness(x[t], a[t]); } for (int t = 0; t < q; t++) { printf("%lld\n", results[t]); } fclose(stdout); return 0; } #endif // HOME
#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...