Submission
Status:
PPPPPPPPPPP
Score: 100
User: akuyga1
Problemset: ตั้งฐานทัพ
Language: cpp
Time: 0.000 second
Submitted On: 2024-11-29 18:03:59
#include<bits/stdc++.h>
using namespace std;
int c=0;
bool ins=false;
vector<int> comp;
queue<pair<int,int>> Q;
void fill(int x,int y,string A[],int W,int H){
Q.push({x,y});
while(!Q.empty()){
int xx=Q.front().first,yy=Q.front().second;
//if(A[yy][xx]=='.')Q.pop();
c++;
Q.pop();
A[yy][xx]='*';
if(xx>0&&A[yy][xx-1]=='.'){Q.push({xx-1,yy});A[yy][xx-1]='*';}
if(yy>0&&A[yy-1][xx]=='.'){Q.push({xx,yy-1});A[yy-1][xx]='*';}
if(xx>0&&yy>0&&A[yy-1][xx-1]=='.'){Q.push({xx-1,yy-1});A[yy-1][xx-1]='*';}
if(xx<W-1&&A[yy][xx+1]=='.'){Q.push({xx+1,yy});A[yy][xx+1]='*';}
if(yy<H-1&&A[yy+1][xx]=='.'){Q.push({xx,yy+1});A[yy+1][xx]='*';}
if(xx<W-1&&yy<H-1&&A[yy+1][xx+1]=='.'){Q.push({xx+1,yy+1});A[yy+1][xx+1]='*';}
if(xx>0&&yy<H-1&&A[yy+1][xx-1]=='.'){Q.push({xx-1,yy+1});A[yy+1][xx-1]='*';}
if(xx<W-1&&yy>0&&A[yy-1][xx+1]=='.'){Q.push({xx+1,yy-1});A[yy-1][xx+1]='*';}
//cout<<1;
}
//cout<<"YO";
comp.push_back(c);c=0;
}
int main(){
int W,H;
cin>>W>>H;
string A[H];
for(auto& i:A)cin>>i;
//for(auto& i:A)cout<<i<<endl;
for(int i=0;i<H;i++)for(int j=0;j<W;j++)if(A[i][j]=='.'){fill(j,i,A,W,H);}
int m=0;
for(auto i:comp)m=max(m,i);
cout<<m;
}