Submission
Status:
PPPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: kavin8888
Problemset: ตั้งฐานทัพ
Language: cpp
Time: 0.021 second
Submitted On: 2025-10-30 08:28:39
#include<bits/stdc++.h>
using namespace std;
#define spps cin.tie(0)->sync_with_stdio(false);
#define MAX_N 750
#define pii pair<int,int>
vector<string> v(MAX_N);
vector<vector<bool>> chk(MAX_N,vector<bool>(MAX_N,false));
int n,m;
bool valid(int row,int col)
{
return 0<=row && row<n && 0<=col && col<m;
}
int run(int row,int col)
{
queue<pii> q;
q.push({row,col});
chk[row][col]=true;
int cnt=0;
while(!q.empty())
{
auto [x,y]=q.front();
q.pop();
cnt++;
for(int i=x-1;i<=x+1;i++)
{
for(int j=y-1;j<=y+1;j++)
{
if(valid(i,j) && v[i][j]=='.' && !chk[i][j])
{
chk[i][j]=true;
q.push({i,j});
}
}
}
}
return cnt;
}
int main()
{
cin>>m>>n;
for(int i=0;i<n;i++)
{
cin>>v[i];
}
int ans=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(v[i][j]=='.' && !chk[i][j])
{
ans=max(ans,run(i,j));
}
}
}
cout<<ans<<'\n';
return 0;
}