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 <bits/stdc++.h>
#include "biscuits.h"
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
#define N 100005
#define PB push_back
#define sz(x) int(x.size())
#define F first
#define M ll(1e9 + 7)
#define S second
#define all(x) x.begin(), x.end()
#define endl '\n'
//#pragma GCC optimize("unroll-loops")
//#pragma GCC optimize("-O3")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("fast-math")
//#pragma GCC optimize("no-stack-protector")
using namespace std;
//using namespace __gnu_pbds;
typedef long long ll;
typedef unsigned long long ull;
//typedef tree <int, null_type, less_equal <int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
ll count_tastiness(ll x, vector<ll> a)
{
ll ans = 1;
ll sum = 0;
int n = 30;
for (int i = 0; i < n; i++) {if (sz(a) == i) a.PB(0); sum += (1 << i) * a[i];}
for (ll cur = sum; cur >= 1; cur--)
{
bool gd = 1;
ll b[30];
for (int i = 0; i < 30; i++) b[i] = a[i];
for (int j = 30 - 1; j >= 0; j--)
if ((1 << j) & cur)
{
ll need = x;
int u = j;
while (u >= 0 && need > 0)
{
ll mn = min(need, b[u]);
b[u] -= mn;
need -= mn;
u--;
need *= 2;
}
if (need != 0) {gd = 0; break;}
}
if (gd) ans++;
}
return ans;
}
//int main()
//{
// iostream::sync_with_stdio(0); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
//
// // freopen("1.in", "r", stdin); //freopen("fcolor.out", "w", stdout);
//
//}
# | 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... |