Submission #129780

#TimeUsernameProblemLanguageResultExecution timeMemory
129780ygh0410Treasure (different grader from official contest) (CEOI13_treasure2)C++11
0 / 100
2 ms376 KiB
#include "treasure.h"

int visited[105][105];


void findTreasure(int N) {
	for (int i = 1; i <= N; i++) {
		for (int j = 1; j <= N; j++) {
			visited[i][j] = 0;
		}
	}
	int cnt = 0;
	for (int i = 1; i <= N; i++) {
		int tmp = countTreasure(1, 1, i, i);
		if (cnt < tmp) {
			for (int j = 1; j < i; j++) {
				visited[i][j]++;
				visited[j][i]++;
			}
			visited[i][i]++;
		}
		cnt = tmp;
		
	}
	cnt = 0;
	for (int i = 1; i <= N; i++) {
		int tmp = countTreasure(1, N - i + 1, i, N);
		if (cnt < tmp) {
			for (int j = 1; j < i; j++) {
				visited[j][N - i + 1]++;
				visited[i][N - j + 1]++;
			}
			visited[i][N - i + 1]++;
		}
		cnt = tmp;
	}
	cnt = 0;
	for (int i = 1; i <= N; i++) {
		int tmp = countTreasure(N - i + 1, 1, N, i);
		if (cnt < tmp) {
			for (int j = 1; j < i; j++) {
				visited[N - j + 1][i]++;
				visited[N - i + 1][j]++;
			}
			visited[N - i + 1][i]++;
		}
		cnt = tmp;
	}
	cnt = 0;
	for (int i = 1; i <= N; i++) {
		int tmp = countTreasure(N - i + 1, N - i + 1, N, N);
		if(cnt < tmp){
			for (int j = 1; j < i; j++) {
				visited[N - i + 1][N - j + 1]++;
				visited[N - j + 1][N - i + 1]++;
			}
			visited[N - i + 1][N - i + 1]++;
		}
		cnt = tmp;
	}
	for (int i = 1; i <= N; i++) {
		for (int j = 1; j <= N; j++) {
			if (visited[i][j] == 4)
				Report(i, j);
		}
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...