제출 #590104

#제출 시각아이디문제언어결과실행 시간메모리
590104shezitt동굴 (IOI13_cave)C++14
46 / 100
501 ms832 KiB
#include "cave.h"
#include <iostream>
#include <algorithm>
#include <cstring>
#include <set>

using namespace std;

void exploreCave(int N) {
	int a[N], b[N];

	for(int i=0; i<N; ++i){
		a[i] = 0;
		b[i] = -1;
	}

	int p = tryCombination(a);

	set<int> found; 


	while(p != -1){
		bool flag = 1;
		

		for(int i=0; i<N; ++i){
			if(found.count(i)){
				continue;
			}
			
			a[i] = !a[i]; 
			int aux = tryCombination(a); 
			if(aux > p || aux == -1){  
				b[i] = p;
				p = aux;
				flag = 0;
				found.insert(i);
				break;
			}
			if(aux < p){ 
				b[i] = aux;
				found.insert(i);
			}
			a[i] = !a[i]; 

		}
		if(flag){
			p = tryCombination(a);
		}
	}


	for(int i=0; i<N; ++i){
		if(found.count(i)){
			continue;
		}
		a[i] = !a[i];
		b[i] = tryCombination(a);
		a[i] = !a[i];
	}

	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...