Submission #675528

#TimeUsernameProblemLanguageResultExecution timeMemory
675528QwertyPiCATS (NOI14_cats)C++14
25 / 25
312 ms8016 KiB
#include <bits/stdc++.h> #define int long long using namespace std; deque<int> S1, S2; bool fl; void out(){ cout << "*****************" << endl; cout << "S1: "; for(auto i : S1) cout << (i ^ fl) << ' '; cout << endl; cout << "S2: "; for(auto i : S2) cout << i << ' '; cout << endl; } int f(int X, int L, int N){ int COUNTER = X; S1.clear(); S2.clear(); fl = false; while(COUNTER){ // out(); if(S1.empty()) S1.push_front(0); S2.push_back(S1.back() ^ fl); S1.pop_back(); fl ^= 1; if(S2.back() > L){ COUNTER--; if(COUNTER == 0) return S2.back(); }else{ if(S2.size() == 1) S2.push_front(0); S2.back() += N * 2; S1.push_back(S2.back() ^ fl); S1.push_back(S2.back() ^ fl); S2.pop_back(); S2.pop_back(); } } } int g(int x, int l, int n){ x--; int Ba = (l / (n * 2) + 1) * n * 2; if(x % 4 == 1 || x % 4 == 2) Ba ^= 1; int d = l / (n * 2); for(int b = 2; b <= min(60LL, d + 1); b++){ if(x & (1LL << b)) Ba ^= 1; } return Ba; } int32_t main(){ int q; cin >> q; for(int i = 0; i < q; i++){ int x, l, n; cin >> x >> l >> n; cout << g(x, l, n) << endl; } }

Compilation message (stderr)

cats.cpp: In function 'long long int f(long long int, long long int, long long int)':
cats.cpp:35:1: warning: control reaches end of non-void function [-Wreturn-type]
   35 | }
      | ^
#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...