Submission #470654

#TimeUsernameProblemLanguageResultExecution timeMemory
470654PiejanVDCCave (IOI13_cave)C++17
100 / 100
313 ms428 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;

void exploreCave(int n) {
	int v[n],d[n];
	memset(v,0,sizeof(v));
	vector<bool>used(n,false);
	for(int i = 0 ; i < n ; i++) {
		int last = tryCombination(v);
		int l=0,r=n-1;
		while(l < r) {
			int mid = (l+r)/2;
			for(int j = l ; j <= mid ; j++) {
				if(!used[j]) v[j]^=1;
			}
			int curr = tryCombination(v);
			if((last == i) ^ (curr == i)) {
				r=mid;
			} else l=mid+1;
			last=curr;
		}
		d[l]=i;
		if(last == i) v[l]^=1;
		used[l]=true;
	}
	answer(v,d);
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...