Submission #109236

#TimeUsernameProblemLanguageResultExecution timeMemory
109236Nodir_BobievCave (IOI13_cave)C++14
100 / 100
685 ms640 KiB
# include "cave.h"
# include <iostream>
# include <vector>

using namespace std;
 
void exploreCave( int N )
{
	int A[5001] = {}, B[5001] = {};
	vector < int > vc;
	
	for ( int i = 0; i < N; i ++ )	vc.push_back(i);
		
	for ( int i = 0; i < N; i ++ ){
			
		for ( auto c: vc )	A[c] = 0;
		
		int cs = tryCombination( A );
		
		int open = (cs == i ), l = 0, r = vc.size() - 1;
		
		while( r > l  ){
			
			int m = ( l + r ) >> 1;
			
			for ( auto c: vc ) A[ c ] = open;
			
			for ( int j = l; j <= m; j ++ )	A[ vc[j] ] = 1 - open;
				
			int cs = tryCombination( A );
			
			(cs == i ? (r = m) : (l = m + 1) );
		}
		B[vc[l]] = i;
		A[ vc[l] ] = open;	
		vc.erase( vc.begin() + l );
	}
	
	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...