Submission #65245

#TimeUsernameProblemLanguageResultExecution timeMemory
65245imsifileMagic Dowsing (FXCUP3_magic)C++98
100 / 100
3 ms384 KiB
#include "dowsing.h"

int NN, ok1, ok2;

int f(int a, int b){
	for(int i=1; i<=NN; i++){
		if(i!=a && i!=b) return i;
	}
	return 0;
}

void FindTreasure(int N) {
	NN = N;
	for(int i=1; i<=N; i++){
		if(Detect(i,i)){
			if(ok1) ok2=i;
			else ok1=i;
		}
	}
	if(ok1){
		if(Detect(ok1,f(ok1,ok2))) Report(ok1,ok2);
		else Report(ok2,ok1);
	}
	else{
		// N=4 : do (1,2)
		// N=5 : do (1,2),(3,4)
		int i;
		for(i=1; i<=N-2; i+=2){
			if(Detect(i,i+1)){
				if(Detect(i,f(i,i+1))) Report(i,i);
				else Report(i+1,i+1);
				return;
			}
		}
		if(i==N) Report(i,i);
		else if(Detect(i,f(i,i+1))) Report(i,i);
		else Report(i+1,i+1);
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...