Submission #65245

# Submission time Handle Problem Language Result Execution time Memory
65245 2018-08-07T07:01:44 Z imsifile Magic Dowsing (FXCUP3_magic) C++
100 / 100
3 ms 384 KB
#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 time Memory Grader output
1 Correct 2 ms 384 KB Correct : C = 5
2 Correct 2 ms 256 KB Correct : C = 4
3 Correct 3 ms 376 KB Correct : C = 149
4 Correct 3 ms 376 KB Correct : C = 100
5 Correct 3 ms 376 KB Correct : C = 150
6 Correct 3 ms 376 KB Correct : C = 101
7 Correct 3 ms 376 KB Correct : C = 149
8 Correct 3 ms 376 KB Correct : C = 150
9 Correct 3 ms 376 KB Correct : C = 150
10 Correct 3 ms 376 KB Correct : C = 150
11 Correct 3 ms 376 KB Correct : C = 150
12 Correct 3 ms 376 KB Correct : C = 149