Submission #99420

#TimeUsernameProblemLanguageResultExecution timeMemory
99420JustasLe동굴 (IOI13_cave)C++17
0 / 100
48 ms548 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[i]) {
					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...