# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
841979 | 2023-09-02T09:37:41 Z | LucaIlie | Packing Biscuits (IOI20_biscuits) | C++17 | 0 ms | 0 KB |
#include "biscuits.h" #include <bits/stdc++.h> using namespace std; vector <long long> biscuits; int solutions; void countSolutions( int b, long long s, long long x ) { int solutions; if ( b == biscuits.size() ) { solutions++; return } countSolutions( b + 1, (biscuits[b] + s) / 2, x ); if ( biscuits[b] + s >= x ) countSolutions( b + 1, (biscuits[b] + s - x) / 2, x ); } long long count_tastiness( long long x, vector <long long> a ) { const int k = 60; long long s; a.resize( k ); biscuits.clear(); s = 0; for ( int b = 0; b < k; b++ ) { a[b] += s; if ( a[b] > x ) { s = a[b] - x; a[b] = x + s % 2; s /= 2; } else s = 0; biscuits.push_back( a[b] ); } countSolutions( 0, 0, x ); return solutions; }