Submission

Status:
PPPPPPPPPPP

Score: 100

User: Monasm

Problemset: ตั้งฐานทัพ

Language: cpp

Time: 0.026 second

Submitted On: 2024-10-17 15:00:15

#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&&y<m&&adj[nx][ny] == '.'&&vis[nx][ny] == 0){
                            q.push({nx,ny});
                            vis[nx][ny] = 1;
                            count++;
                        }
                    }
                }
                ans = max(count,ans);
            }
        }
    }
    cout<<ans;
}