Submission

Status:

-----------

Subtask/Task Score:

0/100

Score: 0

User: klalnwza009

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

Language: cpp

Time: 0.009 second

Submitted On: 2026-10-15 02:26:37


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

using pii = pair<int,int>;
int di[] = {0,0,1,-1};
int dj[] = {1,-1,0,0};

char v[2020][2020];
bool vis[2020][2020];
int dist[2020][2020];

queue <pii> q;

int main () {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n,m; cin >> m >> n;

    for (int i=1;i<=n;i++) {
        for (int j=1;j<=m;j++) {
            cin >> v[i][j];
        }
    }
    int cnt=0,ans=0;;
    for (int i=1;i<=n;i++) {
        for (int j=1;j<=m;j++) {
            if (v[i][j] == '*' && !vis[i][j]) q.push({i,j}),vis[i][j] = 1;
            cnt=0;
            while (!q.empty()) {
                auto [i,j] = q.front();q.pop();

                cnt++;

                for (int k=0;k<4;k++) {
                    int ni = i + di[k];
                    int nj = j + dj[k];

                    if (ni < 1 || nj < 1 || ni > n || nj > m) continue;
                    if (vis[ni][nj] || v[ni][nj] == '.') continue;

                    vis[ni][nj] = 1;
                    q.push({ni,nj});
                }
            }
            ans = max (ans,cnt);
        }
    }
    cout << ans;

}