Submission #144845

#TimeUsernameProblemLanguageResultExecution timeMemory
144845youssefbou62Cave (IOI13_cave)C++14
0 / 100
8 ms640 KiB
#include  <bits/stdc++.h>
#include "cave.h"
using namespace std;

#define mp make_pair
#define fi first
#define se second
#define all(v) v.begin(),v.end()
#define allarr(a) a , a + n
#define ll long long
#define ull unsigned long long 
#define pb push_back
#define fastio ios_base::sync_with_stdio(false) ; cin.tie(NULL); cout.tie(NULL)
typedef pair<int, int> pi;
typedef pair<ll,ll> pll; 
typedef pair<int,pi> trp ;
typedef vector<pi> vpi;
typedef vector<pll> vpll ;
// int ab  (int  x ) { return (x>0?x:-x); }


int n ; 
int cnt = 0 ;
int TryCombination(int S[]){
	cnt++; 
	// assert(cnt<=69000);
	tryCombination(S); 
}

void exploreCave(int N){
	n = N ; 
	int door[N],Combination[N]={0}; 
	bool done[N]; 
	memset(door,-1,sizeof door); 
	int reply =0; 
	// cerr << "*****exploreCave("<<N<<")*******"<<endl; 
	while(reply!=-1){
	int l = 0 , r= N-1 ; 
	int last = TryCombination(Combination); 
	reply = last; 
	assert(!done[last]); 
	done[last]=1; 
		while ( l<r ){
			if( last == -1 )break ; 
			int mid = (l+r)/2 ;
			// if( l == r ){
			// 		door[r]=reply;
			// 		break ; 
			// }   
			for(int i = l ; i <= mid ; i++ ){
				if( door[i] == -1 ){
					 Combination[i]= (!Combination[i]); 
				}
			}
			reply = TryCombination(Combination);  
			if( reply == -1 )break ; 
			if( reply == last){
				l = mid;
			}else {
				for(int i = l ; i <= mid ; i++ ){
					if( door[i] == -1 ){
						 Combination[i]= (!Combination[i]); 
					}
				}
			r = mid; 
			}
		}
		if( reply != -1 )door[l]=reply; 

	}
	// cerr <<"***answer**"<<endl; 
	assert(reply==-1); 
	for(int i = 0 ; i < n ; i++ ){
		if( door[i]==-1){
		Combination[i]=!Combination[i]; 
		reply = TryCombination(Combination);
		door[i]=reply; 
		// if( reply == -1 )door[i]=n-1; 
		Combination[i]=!Combination[i];
		}
	}
	// }
	// for(int i = 0 ; i < n ; i++ )cout <<Combination[i]; cout << endl; 
	// for(int i = 0 ; i < n ; i++ )cout <<door[i]; cout << endl; 
	
	answer(Combination,door); 
}

// int main(){
// 	cin >> n ; 
// 	exploreCave(n); 
// }

Compilation message (stderr)

cave.cpp: In function 'int TryCombination(int*)':
cave.cpp:28:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...