제출 #339930

#제출 시각아이디문제언어결과실행 시간메모리
339930Kerim동굴 (IOI13_cave)C++17
100 / 100
1117 ms640 KiB
#include "cave.h"
#include "bits/stdc++.h"
using namespace std;
void exploreCave(int n) {
	vector<int>a(n),b(n),c(n);
	for(int i=0;i<n;i++)a[i]=-1;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(~a[j])c[j]=a[j];
			else c[j]=0;
		}
		int val=(tryCombination(c.data())==i);
		int st=0,en=n-1;
		while(st<en){
			int mid=(st+en+1)>>1;
			for(int j=0;j<n;j++){
				if(~a[j])c[j]=a[j];
				else c[j]=val^(j<mid);	
			}
			if(tryCombination(c.data())==i) en=mid-1;
			else st=mid;
		}
		for(int j=0;j<n;j++){
			if(~a[j])c[j]=a[j];
			else c[j]=val^(j<en);	
		}a[st]=val,b[st]=i;
	}
	answer(a.data(),b.data());
}
#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...