Submission
Status:
PPPPPPxxxxx
Subtask/Task Score:
60/100
Score: 60
User: purihorharin
Problemset: ตั้งฐานทัพ
Language: c
Time: 0.025 second
Submitted On: 2026-03-19 23:02:23
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
int ncol, nrow;
int dfs (int r, int c, char (*map)[ncol+1], bool (*visited)[ncol]) {
if (r < 0 || r >= nrow || c < 0 || c >= ncol) return 0;
else if (map[r][c] != '.') return 0;
else if (visited[r][c]) return 0;
visited[r][c] = true;
return (
+dfs(r-1, c-1, map, visited)
+dfs(r-1, c, map, visited)
+dfs(r-1, c+1, map, visited)
+dfs(r, c-1, map, visited)
+dfs(r, c+1, map, visited)
+dfs(r+1, c-1, map, visited)
+dfs(r+1, c, map, visited)
+dfs(r+1, c+1, map, visited)
+1
);
}
int main () {
scanf("%d%d", &ncol, &nrow);
char map[nrow][ncol+1];
bool visited[nrow][ncol];
memset(visited, 0, nrow * ncol);
getchar();
fread(map, ncol+1, nrow, stdin);
int max = 0;
for (int r = 0; r < nrow; r++) {
for (int c = 0; c < ncol; c++) {
int result = dfs(r, c, map, visited);
if (result > max) {
max = result;
}
}
}
printf("%d", max);
}