Submission #1018964

#TimeUsernameProblemLanguageResultExecution timeMemory
1018964j_vdd16Packing Biscuits (IOI20_biscuits)C++17
0 / 100
2 ms604 KiB
#include <algorithm> #include <bitset> #include <cstdint> #include <cstring> #include <iostream> #include <limits.h> #include <math.h> #include <map> #include <numeric> #include <queue> #include <set> #include <stack> #include <string> #include <vector> #define int long long #define ll long long #define loop(X, N) for(int X = 0; X < (N); X++) #define all(V) V.begin(), V.end() #define rall(V) V.rbegin(), V.rend() using namespace std; typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int, int> ii; typedef vector<ii> vii; typedef vector<vector<ii>> vvii; typedef vector<bool> vb; typedef vector<vector<bool>> vvb; int count_tastiness(int x, vi a) { constexpr int N = 5; while (a.size() < N) a.push_back(0); int sum = 0; loop(i, N) sum += a[i] * (1LL << i); int result = 0; //for (int y = 0; y <= sum; y++) //{ // bool success = true; // int count = 0; // loop(bit, N) // { // count += a[bit] * (1LL << bit); // if ((y & (1LL << bit)) == 0) // continue; // if (count / x < (1LL << bit)) // { // success = false; // break; // } // count -= x * (1LL << bit); // } // //cout << y << ": " << success << endl; // result += success; //} //result = 1; int extra = 0; int possible = 1; int lastI = 0; loop(i, N - 1) { if (a[i] > 0) { possible *= 2; extra += (a[i] - 1) * (1LL << (i - lastI)); } else { if (extra >= possible) { extra -= possible; possible *= 2; } else { possible += extra; extra = 0; lastI = i + 1; } } //cout << "pos: " << possible << ' ' << extra << endl; } return possible + extra; } //signed main() //{ // cout << count_tastiness(3, { 5, 2, 1 }) << endl; // cout << count_tastiness(2, { 2, 1, 2 }) << endl; // cout << count_tastiness(2, { 2, 2, 1 }) << endl; // cout << count_tastiness(2, { 0, 4, 1 }) << endl; // cout << count_tastiness(2, { 4, 1 }) << endl; // // return 0; //}

Compilation message (stderr)

biscuits.cpp: In function 'long long int count_tastiness(long long int, vi)':
biscuits.cpp:43:6: warning: unused variable 'result' [-Wunused-variable]
   43 |  int result = 0;
      |      ^~~~~~
#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...