Submission #1205295

#TimeUsernameProblemLanguageResultExecution timeMemory
1205295notmePacking Biscuits (IOI20_biscuits)C++20
9 / 100
1095 ms328 KiB
#include "biscuits.h" #include <bits/stdc++.h> using namespace std; long long p[64]; long long n, k, cnt[64], has[64]; int take[64]; int solve(int val) { // cout << val << endl; for (int i = 0; i < 30; ++ i) has[i] = cnt[i]; for (int i = 0; i < 30; ++ i) { if(val & p[i])take[i] = n; else take[i] = 0; } for (int i = 0; i < 30; ++ i) { if(has[i] < take[i])return 0; has[i] -= take[i]; has[i+1] += has[i]/2; } return 1; } long long count_tastiness(long long x, std::vector<long long> a) { k = a.size(); n = x; long long sum = 0, val = 1; for (int i = 0; i < k; ++ i) { sum += val * a[i]; cnt[i] = a[i]; val *= 2; } // cout << sum << endl; p[0] = 1; for (int i = 1; i <= 20; ++ i) p[i] = p[i-1] * 2; long long ans = 1; //cout << sum << endl; for (int i = 1; i <= sum; ++ i) { if(i * x > sum)break; // cout << "trying " << i << endl; ans += solve(i); } return ans; }
#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...