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