제출 #157284

#제출 시각아이디문제언어결과실행 시간메모리
157284ZikXewen동굴 (IOI13_cave)C++11
0 / 100
172 ms640 KiB
#include <bits/stdc++.h>
#include "cave.h"
using namespace std;

void exploreCave(int N){
	int st[N], nw[N], ga[N], sw[N];
	vector<int> lf(N);
	iota(lf.begin(), lf.end(), 0);
	for(int i = 0; i < N; i++) {
		int l = 0, r = lf.size() - 1;
		while(l < r) {
			int m = (l + r) >> 1;
			copy(st, st + N, nw);
			for(int j = l; j <= m; j++) nw[j] = !st[lf[j]];
			if(tryCombination(nw) == i) r = m;
			else l = m + 1;
		}
		ga[lf[l]] = i; sw[i] = lf[l];
		lf.erase(lf.begin() + l);
	}
	for(int te = tryCombination(st); te != -1; te = tryCombination(st)) st[sw[te]] = 1; 
	answer(st, ga);
}
#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...