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;
}