제출 #129584

#제출 시각아이디문제언어결과실행 시간메모리
129584ygh0410보물 찾기 (CEOI13_treasure2)C++14
0 / 100
2 ms376 KiB
#include "treasure.h"

int Tcnt = 0;
int Treasure[10005][2];
void search(int r1, int c1, int r2, int c2)
{
	if (r1 == r2 && c1 == c2 && countTreasure(r1,c1,r2,c2)) {
		Treasure[Tcnt][0] = r1;
		Treasure[Tcnt][1] = c1;
		Tcnt++;
		return;
	}
	else
	{
		int rmid = (r1 + r2) / 2;
		int cmid = (c1 + c2) / 2;
		if (countTreasure(r1, c1, rmid, cmid)) 
			search(r1, c2, rmid, cmid);
		if (countTreasure(r1, cmid + 1, rmid, c2))
			search(r1, cmid + 1, rmid, c2);
		if (countTreasure(rmid + 1, c1, r2, cmid))
			search(rmid + 1, c1, r2, cmid);
		if (countTreasure(rmid + 1, cmid + 1, r2, c2))
			search(rmid + 1, cmid + 1, r2, c2);
	}
}


void findTreasure(int N) {

//	int cnt = countTreasure(1, 1, N, N);
//	if (cnt > 0) Report(1, 1);
	search(1, 1, N, N);
	for (int i = 0; i < Tcnt; i++) {
		Report(Treasure[i][0], Treasure[i][1]);
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...