Submission #107447

#TimeUsernameProblemLanguageResultExecution timeMemory
107447DodgeBallManCave (IOI13_cave)C++14
100 / 100
313 ms536 KiB
#include "cave.h"
#include <bits/stdc++.h>
 
using namespace std;
 
const int N = 5e3+5; 
 
int S[N], D[N];
bool chk[N];
 
void exploreCave( int n) {
	for( int i = 0; i < n; i++ ) {
		int init = tryCombination( S );
		bool t = ( init == -1 || init > i );
		int l = 0, r = n - 1;
		while( l < r ) {
			int m = ( l + r ) >> 1;
			for( int j = l ; j <= m ; j++ ) if( !chk[j] ) S[j] ^= 1;
			int ret = tryCombination( S );
			bool now = ( ret == -1 || ret > i );
			if( t ^ now ) r = m, t = now;
			else l = m + 1;
		}
		if( !t ) S[r] ^= 1;
		D[r] = i, chk[r] = true;
	}
	answer( S, D );
}
#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...