Submission #420269

#TimeUsernameProblemLanguageResultExecution timeMemory
420269SuhaibSawalha1Cave (IOI13_cave)C++17
100 / 100
1112 ms472 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;

void exploreCave(int N) {
	int a[N] = {}, D[N], P[N] = {};
	for (int i = 0; i < N; ++i) {
		for (int j = 0; j < N; ++j) {
			if (!P[j]) {
				a[j] = 0;
			}
		}
		int right = tryCombination(a) != i;
		int l = 0, r = N - 1; 
		while (l < r) {
			int mid = (l + r) / 2;
			for (int j = 0; j < N; ++j) {
				if (!P[j]) {
					a[j] = j <= mid ? right : !right;
				}
			}
			if (tryCombination(a) == i) {
				r = mid;
			}
			else {
				l = mid + 1;
			}
		}
		D[l] = i;
		a[l] = !right;
		P[l] = 1;
	}
	answer(a, 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...