Submission

Status:

PPPPPPPPPxx

Subtask/Task Score:

90/100

Score: 90

User: Phat12

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

Language: cpp

Time: 0.043 second

Submitted On: 2025-12-28 13:08:22

#include <bits/stdc++.h>
using namespace std;

using ll = long long;
using pii = pair<int,int>;

#define all(x) (x).begin(), (x).end()
int diri[] = {0,0,1,1,1,-1,-1,-1};
int dirj[] = {1,-1,1,-1,0,-1,1,0};
const int MOD = 1e9 + 7;

int n,m;
char arr[780][780];
int dfs(int x,int y){
    int res=1;
    arr[x][y] = '*';
    for (int i=0;i<8;i++){
        int ii = diri[i]+x , jj =dirj[i]+y;
        if (ii < 0 || ii >= n || jj < 0 || jj >= m || arr[ii][jj] == '*') continue;
        res += dfs(ii,jj); 
    }
    return res;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> m >> n;
    for (int i=0;i<n;i++) cin >> arr[i];
    int mx=0;
    for (int i=0;i<n;i++){
        for (int j=0;j<m;j++){
            if (arr[i][j] == '.') mx = max(mx,dfs(i,j));
        }
    }
    cout << mx;
    return 0;
}