Submission #678022

#TimeUsernameProblemLanguageResultExecution timeMemory
678022hello_there_123Cave (IOI13_cave)C++17
0 / 100
165 ms340 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
int n;/*
int tryCombination(int A[]){
	for(int i=0;i<n;i++) cout<<A[i]<<" ";
	cout<<"\n";
	return 1;
}
void answer(int A[],int B[]){
	cout<<"H"<<endl;
	for(int i=0;i<n;i++) cout<<A[i]<<" ";
	cout<<endl;
	for(int i=0;i<n;i++) cout<<B[i]<<" ";
}*/
void exploreCave(int N) {
	n = N;
	int comb[N+3];
	int link[N+3];
	memset(comb,-1,sizeof(comb));
	memset(link,-1,sizeof(link));
	for(int i=0;i<N;i++){
		int tr[N+3];
		for(int j=0;j<N;j++){
			tr[j] = comb[j];
		}
		for(int j=0;j<N;j++){
			if(tr[j] == -1) tr[j] = 0;
		}
		int cor;
      	int c = tryCombination(tr);
		if(c>i || c==-1) cor = 0;
		else cor = 1;
		int lo = 0;
		int hi = N-1;
		while(lo<=hi){
			int X = (lo+hi)/2;
			for(int j=lo;j<=X;j++){
				if(comb[j] == -1) tr[j] = cor;
			}
			for(int j=X+1;j<hi;j++){
				if(comb[j] == -1) tr[j] = 1-cor;
			}
			if(tryCombination(tr)>i){
				hi = X-1;
			}
			else lo = X+1;
		}
		link[lo] = i;
		comb[lo] = cor;
		
		
	}
  
 
 
 
    answer(comb, link);
}
#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...