Submission #1244706

#TimeUsernameProblemLanguageResultExecution timeMemory
1244706NurislamCave (IOI13_cave)C++20
0 / 100
147 ms552 KiB

#include <bits/stdc++.h>
#include "cave.h"

using namespace std;

void exploreCave(int n) {
	
	int a[n], us[n];
	int ans1[n], ans2[n];
	
	for(int i = 0; i < n; i ++ ){
		a[i] = 0; ans1[i] = 0; ans2[i] = 0;
	};
	
	auto fp = [&](int l, int r) {
		for(int i = l; i <= r; i ++ ) {
			if(us[i])continue;
			a[i] ^= 1;
		};
	};
	
	int t = 0;
	function<void(int,int)> f = [&](int l, int r) {
		
		if(l == r) {
			ans1[l] = a[l];
			us[l] = 1;
			ans2[l] = t++;
			return;
		};
		int m = (l + r) >> 1;
		
		fp(l, m);
		
		if(tryCombination(a) == t) {
			fp(l,m);
			f(l, m);
			return;
		};
		f(m+1, r);
	};
	
	
	for(int i = 0; i < n; i ++ ) {
		int x = tryCombination(a);
		if(x == t) fp(0,n-1);
		
		f(0, n-1);
	};
	
	
	answer(ans1, ans2);
}
#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...