From 06dc662648855b4e4a3f5d8659549f247d86f9ce Mon Sep 17 00:00:00 2001 From: yenru0 Date: Fri, 19 Jul 2024 17:12:52 +0900 Subject: [PATCH] complete 2615.c --- zeta_C/completed/2615.c | 74 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 zeta_C/completed/2615.c diff --git a/zeta_C/completed/2615.c b/zeta_C/completed/2615.c new file mode 100644 index 0000000..bacf529 --- /dev/null +++ b/zeta_C/completed/2615.c @@ -0,0 +1,74 @@ +#include +#include + +int get(int map[], int x, int y) { + return map[19 * x + y]; +} + +int main() { + int Map[19 * 19]; + int dx[] = {1, 0, 1, 1}; + int dy[] = {0, 1, 1, -1}; + int flag; + int last_color; + int last_pos_x, last_pos_y; + for (int i = 0; i < 19; i++) { + for (int j = 0; j < 19; j++) { + scanf("%d", Map + i + j * 19); + } + } + + for (int x = 0; x < 19; x++) { + for (int y = 0; y < 19; y++) { + int now = get(Map, x, y); + if (now == 0) { + continue; + } else { + for (int d = 0; d < 4; d++) { + if (19 > x - dx[d] && x - dx[d] >= 0 && 19 > y - dy[d] && y - dy[d] >= 0) { + if (get(Map, x - dx[d], y - dy[d]) == now) { + flag = 0; + continue; + } + } + flag = 1; + for (int i = 1; i < 5; i++) { + if (19 > x + i * dx[d] && x + i * dx[d] >= 0 && 19 > y + i * dy[d] && y + i * dy[d] >= 0) { + if (get(Map, x + i * dx[d], y + i * dy[d]) != now) { + flag = 0; + break; + } + } else { + flag = 0; + break; + } + } + if (flag) { + if (19 > x + 5 * dx[d] && x + 5 * dx[d] >= 0 && 19 > y + 5 * dy[d] && y + 5 * dy[d] >= 0) { + if (get(Map, x + 5 * dx[d], y + 5 * dy[d]) == now) { + flag = 0; + continue; + } + } + } + + if (flag) { + break; + } + } + } + if (flag) { + last_color = now; + last_pos_x = x; + last_pos_y = y; + break; + } + } + if (flag) { + break; + } + } + flag ? printf("%d\n%d %d\n", last_color, last_pos_y + 1, last_pos_x + 1) : printf("%d\n", 0); + + return 0; +} \ No newline at end of file