Submission #125414

#TimeUsernameProblemLanguageResultExecution timeMemory
125414TouubsCATS (NOI14_cats)C++17
12 / 25
560 ms2200 KiB
    #include <bits/stdc++.h>
    using namespace std;
    #define dout if(false) cout
    #define int unsigned long long
     
    void testcase() {
        int X, L, N;
        cin >> X >> L >> N;
        int originalX = X;
        X--;
     
        int level = L/(2*N) + 1;
        dout << "level: " << level << endl;
     
        int counterPerIter = (2 << level);
        int flipPerIter = 2 * counterPerIter - 1;
     
        int iterations = X / counterPerIter;
        int flips = 0;
     
        X = X % counterPerIter;
     
        dout << "counterPerIter: " << counterPerIter << endl;
        dout << "flipPerIter: " << flipPerIter << endl;
     
        while (X > 0) {
            //cout << "X: " << X << ", flips: " << flips << " | ";
            if ((X & 1) == 1) flips = flips ^ 1;
            X = X >> 1;
        }
     
        dout << endl << "end. flips: " << flips << endl;
        int min = (L/(2*N) + 1) * (2*N);
        cout << ((min ^ ((flips) & 1))) << endl;
    }
     
    signed main() {
        int Q;
        cin >> Q;
        for (int i = 0; i < Q; i++) {
            testcase();
        }
        
    }

Compilation message (stderr)

cats.cpp: In function 'void testcase()':
cats.cpp:9:13: warning: unused variable 'originalX' [-Wunused-variable]
         int originalX = X;
             ^~~~~~~~~
cats.cpp:18:13: warning: unused variable 'iterations' [-Wunused-variable]
         int iterations = X / counterPerIter;
             ^~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...