Submission #394843

#TimeUsernameProblemLanguageResultExecution timeMemory
394843snasibov05Packing Biscuits (IOI20_biscuits)C++14
0 / 100
1087 ms332 KiB
#include "biscuits.h" #define int long long using namespace std; const int kmax = 65; const int ymax = 1e5; vector<int> getBinary(int n){ vector<int> bin(kmax); int k = 0; while (n > 0){ if (n % 2) bin[k] = 1; k++; n /= 2; } return bin; } bool possible(int x, int y, vector<int> avail){ vector<int> bin = getBinary(y); for (int i = kmax-1; i >= 0; --i) { bin[i] *= x; } for (int i = kmax-1; i >= 0; --i) { if (avail[i] < bin[i]) { if (i != 0) { bin[i] -= avail[i]; bin[i-1] += bin[i] * 2; bin[i] = 0; } continue; } avail[i] -= bin[i]; bin[i] = 0; } return bin[0] == 0; } int count_tastiness(int x, vector<int> a) { int ans = 0; vector<int> avail(kmax); for (int i = a.size()-1; i >= 0; --i) { avail[i] = a[i]; } for (int i = 0; i <= ymax; ++i) { if (possible(x, i, avail)) ans++; } 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...