Submission
Status:
-PP---PPPPP
Subtask/Task Score:
70/100
Score: 70
User: klalnwza009
Problemset: ตั้งฐานทัพ
Language: cpp
Time: 0.015 second
Submitted On: 2026-10-15 02:38:13
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int,int>;
int di[] = {0,0,1,-1 ,1,1,-1,-1};
int dj[] = {1,-1,0,0, 1,-1,1,-1};
char v[2020][2020];
bool vis[2020][2020];
queue <pii> q;
int main () {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n,m; cin >> m >> n;
for (int i=1;i<=n;i++) {
for (int j=1;j<=m;j++) {
cin >> v[i][j];
}
}
int cnt=0,ans=0;;
for (int i=1;i<=n;i++) {
for (int j=1;j<=m;j++) {
if (v[i][j] == '.' && !vis[i][j]) q.push({i,j}),vis[i][j] = 1,cnt=0;
while (!q.empty()) {
auto [i,j] = q.front();q.pop();
cnt++;
for (int k=0;k<4;k++) {
int ni = i + di[k];
int nj = j + dj[k];
if (ni < 1 || nj < 1 || ni > n || nj > m) continue;
if (vis[ni][nj] || v[ni][nj] == '*') continue;
vis[ni][nj] = 1;
q.push({ni,nj});
}
}
ans = max (ans,cnt);
}
}
cout << ans;
}