Submission
Status:
PPPPPPPPPPP
Score: 100
User: Monasm
Problemset: ตั้งฐานทัพ
Language: cpp
Time: 0.025 second
Submitted On: 2024-10-17 15:04:21
#include <bits/stdc++.h>
int gx[] = {0,0,1,-1,1,-1,1,-1};
int gy[] = {1,-1,0,0,1,-1,-1,1};
#define pii pair<int,int>
using namespace std;
int main(){
int n,m;cin >> m >>n;
vector<string> adj;
vector<vector<int>> vis(n,vector<int>(m,0));
for(int i=0;i<n;i++){
string s;cin >> s;
adj.push_back(s);
}
int ans = 0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(adj[i][j]=='.'&&!vis[i][j]){
queue<pii> q;
q.push({i,j});
int count = 1;
while(!q.empty()){
int x = q.front().first;
int y = q.front().second;
vis[x][y] = 1;
q.pop();
for(int k=0;k<8;k++){
int nx = x+gx[k];
int ny = y+gy[k];
if(0<=nx&&nx<n&&0<=ny&&ny<m&&adj[nx][ny] == '.'&&vis[nx][ny] == 0){
q.push({nx,ny});
vis[nx][ny] = 1;
count++;
}
}
}
ans = max(count,ans);
}
}
}
cout<<ans;
}