Submission #125251

#TimeUsernameProblemLanguageResultExecution timeMemory
125251khulegubCave (IOI13_cave)C++14
0 / 100
48 ms512 KiB
#include "cave.h"
#include <bits/stdc++.h>
int n;
int start;
int uz[5005];
int s[5005], d[5005];
void soli(int l, int r){
	for (int i = l; i <= r; i++) uz[i] = !uz[i]; 
}
void exploreCave(int N) {
	n = N;
	memset(uz, 0, sizeof uz);
	for (int i = 0; i < n; i++){
		start = i;
		if (tryCombination(uz) < i) soli(i, n - 1);
		s[i] = uz[i];
		// now uz is guaranteed to produce i<=
		int l = i, 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[l] = i; 
	}
	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...