Submission #339923

#TimeUsernameProblemLanguageResultExecution timeMemory
339923KerimCave (IOI13_cave)C++17
51 / 100
608 ms620 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+1<en){
			int mid=(st+en)>>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;
			else st=mid;
		}
		for(int j=0;j<n;j++){
			if(~a[j])c[j]=a[j];
			else c[j]=val^(j<en);	
		}
		if(tryCombination(c.data())!=i)
			a[en]=val,b[en]=i;
		else 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...