Submission #675502

#TimeUsernameProblemLanguageResultExecution timeMemory
675502QwertyPiCATS (NOI14_cats)C++14
0 / 25
1581 ms262144 KiB
#include <bits/stdc++.h>

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 solve(int X, int L, int N){
	int COUNTER = X; 
	S1.clear(); S2.clear();
	fl = false;
	while(COUNTER){
		// out();
		if(S1.empty()) S1.push_front(fl);
		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 main(){
	int q; cin >> q;
	for(int i = 0; i < q; i++){
		int x, l, n; cin >> x >> l >> n;
		cout << solve(x, l, n) << endl;
	} 
}

Compilation message (stderr)

cats.cpp: In function 'int solve(int, int, 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...