제출 #94842

#제출 시각아이디문제언어결과실행 시간메모리
94842wogns1026Treasure (different grader from official contest) (CEOI13_treasure2)C++14
0 / 100
2 ms376 KiB
#include "treasure.h" struct Node { int x; int y; }; Node ans[10001]; int idx = 0; void func(int x1, int y1, int x2, int y2) { if (x1 == x2 && y1 == y2) { ans[idx].x = x1; ans[idx].y = y1; idx++; return; } if (countTreasure(x1, y1, x2 / 2, y2 / 2) != 0) func(x1, y1, x2 / 2, y2 / 2); if (countTreasure(x1, y1 / 2 + 1, x2 / 2, y2)) func(x1, y2 / 2 + 1, x2 / 2, y2); if (countTreasure(x1 / 2 + 1, y1, x2, y2 / 2)) func(x2 / 2 + 1, y1, x2, y2 / 2); if (countTreasure(x1 / 2 + 1, y2 / 2 + 1, x2, y2)) func(x2 / 2 + 1, y2 / 2 + 1, x2, y2); } void findTreasure(int N) { /*int num = 0; for (int i = 1; i <= N; i++) { for (int j = 1; j <= N; j++) { if (i <= N / 2 && j <= N / 2) { num = countTreasure(i, j, N, N) - (countTreasure(i + 1, j, N, N) + countTreasure(i, j + 1, N, N)) + countTreasure(i + 1, j + 1, N, N); if (num) ans[idx].x = i, ans[idx].y = j, idx++; } else if (i <= N / 2 && j > N / 2) { num = countTreasure(i, 1, N, j) - (countTreasure(i + 1, 1, N, j) + countTreasure(i, 1, N, j - 1)) + countTreasure(i + 1, 1, N, j - 1); if (num) ans[idx].x = i, ans[idx].y = j, idx++; } else if (i > N / 2 && j <= N / 2) { num = countTreasure(1, j, i, N) - (countTreasure(1, j, i - 1, N) + countTreasure(1, j + 1, i, N)) + countTreasure(1, j + 1, i - 1, N); if (num) ans[idx].x = i, ans[idx].y = j, idx++; } else if (i > N / 2 && j > N / 2) { num = countTreasure(1, 1, i, j) - (countTreasure(1, 1, i - 1, j) + countTreasure(1, 1, i, j - 1)) + countTreasure(1, 1, i - 1, j - 1); if (num) ans[idx].x = i, ans[idx].y = j, idx++; } } }*/ func(1, 1, N, N); for (int i = 0; i < idx; i++) { Report(ans[i].x, ans[i].y); } }
#Verdict Execution timeMemoryGrader output
Fetching results...