Submission #99423

#TimeUsernameProblemLanguageResultExecution timeMemory
99423JustasLeCave (IOI13_cave)C++17
100 / 100
319 ms640 KiB
#include "cave.h"
#include <bits/stdc++.h>
 
using namespace std;
 
const int maxn = (int) 5e3 + 10;
int a[maxn], b[maxn], d[maxn];
 
void exploreCave(int n) {
	for (int i = 0; i < n; i++) {
		a[i] = b[i] = d[i] = 0;
	}
	for (int i = 0; i < n; i++) {
		int l = 0, r = n - 1, p;
		int cur = tryCombination(a);
		while (l < r) {
			int m = (l + r) / 2;
			for (int j = l; j <= m; j++) {
				if (!d[j]) {
					a[j] = !a[j];
				}
			}
			p = cur, cur = tryCombination(a);
			if ((p == i) ^ (cur == i)) {
				r = m;
			} else {
				l = m + 1;
			}
		}
		if (cur == i) {
			a[l] = !a[l];
		}
		d[l] = 1;
		b[l] = i;
	}
	answer(a, b);
}
#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...