Submission #125358

#TimeUsernameProblemLanguageResultExecution timeMemory
125358khulegubCave (IOI13_cave)C++14
0 / 100
330 ms520 KiB
#include "cave.h"
#include <bits/stdc++.h>
int n;
int uz[5005];
bool kay[5005];
int s[5005], d[5005];
void soli(int l, int r){
	for (int i = l; i <= r; i++) if(!kay[i]) uz[i] = !uz[i]; 
}
void exploreCave(int N) {
	n = N;
	memset(uz, 0, sizeof uz);
	for (int i = 0; i < n; i++){
		if(tryCombination(uz) == i) soli(0, n - 1);
		int l = 0, r = n - 1;
		while (l != r){
			int mid = (l + r) >> 1;
			soli(l, mid);
			int tmp = tryCombination(uz);
			soli(l, mid);
			if(tmp == i){ //zuun tald
				r = mid;
			}
			else{ //baruun tald
				l = mid + 1;
			}
		}
		d[i] = l;
		uz[l] = 1;
		if(tryCombination(uz) == i) uz[l] = 0;
		s[l] = uz[l];
		kay[l] = 1;
	}
	answer(s, d);
}
#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...