제출 #1248933

#제출 시각아이디문제언어결과실행 시간메모리
1248933kaiboyTreasure (different grader from official contest) (CEOI13_treasure2)C++20
100 / 100
0 ms328 KiB
// read rainboy's code
#include "treasure.h"
#include <algorithm>
#include <iostream>

using namespace std;

const int N = 100;

int aa[N][N];

void findTreasure(int n) {
	int m = n / 2;
	for (int i = 0; i < n; i++)
		for (int j = 0; j < n; j++) {
			int il, ir;
			if (i < m)
				il = i + 1, ir = n - 1;
			else
				il = 0, ir = i;
			int jl, jr;
			if (j < m)
				jl = j + 1, jr = n - 1;
			else
				jl = 0, jr = j;
			aa[i][j] = countTreasure(il + 1, jl + 1, ir + 1, jr + 1);
		}
	for (int i = 0; i < n; i++)
		for (int j = 0; j < n; j++)
			if (i < m && j < m)
				aa[i][j] = aa[n - 1][n - 1] - aa[i][n - 1] - aa[n - 1][j] + aa[i][j];
			else if (i < m)
				aa[i][j] = aa[n - 1][j] - aa[i][j];
			else if (j < m)
				aa[i][j] = aa[i][n - 1] - aa[i][j];
	for (int i = n - 1; i; i--)
		for (int j = 0; j < n; j++)
			aa[i][j] -= aa[i - 1][j];
	for (int i = 0; i < n; i++)
		for (int j = n - 1; j; j--)
			aa[i][j] -= aa[i][j - 1];
	for (int i = 0; i < n; i++)
		for (int j = 0; j < n; j++)
			if (aa[i][j])
				Report(i + 1, j + 1);
}
#Verdict Execution timeMemoryGrader output
Fetching results...