Submission
Status:
PPPPPPPPxxx
Score: 80
User: Winzzwz
Problemset: ตั้งฐานทัพ
Language: cpp
Time: 0.042 second
Submitted On: 2024-11-10 21:05:23
#include <bits/stdc++.h>
using namespace std;
char maps[800][800];
int dix[10] = {0,1,0,-1,1,-1,1,-1};
int diy[10] = {1,0,-1,0,-1,1,1,-1};
int cnt = 0, mx = 0, h, w;
void recur(int i, int j) {
for (int k = 0; k < 8; k++) {
int nx = j+dix[k];
int ny = i+diy[k];
if (nx >= 0 && nx < w && ny >= 0 && ny < h) {
if (maps[ny][nx] == '.') {
cnt++;
maps[ny][nx] = '*';
recur(ny,nx);
}
}
}
}
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
cin >> w >> h;
for (int i = 0; i < h; i++) {
for (int j = 0; j < w; j++) {
cin >> maps[i][j];
}
}
for (int i = 0; i < h; i++) {
for (int j = 0; j < w; j++) {
if (maps[i][j] == '.') {
cnt = 1;
maps[i][j] = '*';
recur(i,j);
mx = max(mx,cnt);
}
}
}
cout << mx;
return 0;
}
/*
10 8
...*....**
..**....**
...*....**
...**.*.**
***.**.***
...**.*.**
...*.*****
...***..**
*/