Submission
Status:
PPPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Pera
Problemset: ตั้งฐานทัพ
Language: cpp
Time: 0.016 second
Submitted On: 2025-09-24 10:51:16
#include <bits/stdc++.h>
using namespace std;
static const int DR[8] = {-1,-1,-1,0,0,1,1,1};
static const int DC[8] = {-1,0,1,-1,1,-1,0,1};
int main() {
ios::sync_with_stdio(false);
int W, H;
if (!(cin >> W >> H)) return 0;
vector<vector<char>> g(H, vector<char>(W));
for (int i = 0; i < H; ++i)
for (int j = 0; j < W; ++j)
cin >> g[i][j];
int ans = 0;
queue<pair<int,int>> q;
for (int r = 0; r < H; ++r) {
for (int c = 0; c < W; ++c) {
if (g[r][c] != '.') continue;
g[r][c] = '*';
q.push({r,c});
int sz = 0;
while (!q.empty()) {
auto [x,y] = q.front(); q.pop();
++sz;
for (int k = 0; k < 8; ++k) {
int nx = x + DR[k], ny = y + DC[k];
if (nx < 0 || nx >= H || ny < 0 || ny >= W) continue;
if (g[nx][ny] != '.') continue;
g[nx][ny] = '*';
q.push({nx,ny});
}
}
ans = max(ans, sz);
}
}
cout << ans << '\n';
return 0;
}