Submission

Status:

[PPPP-SSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: AugusEiEi

Problemset: เกาะที่ใหญ่ที่สุด

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-20 22:50:56

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

typedef long long ll;

vector<string>maps;
int n,m;

int bfs(int i,int j,int val){
  queue<pair<int,int>>q;
  q.emplace(i,j);
  while(!q.empty()){
    auto [x,y]=q.front();
    val++;
    q.pop();
    maps[x][y]='0';
    if(x+1<n && maps[x+1][y]=='1') q.emplace(x+1,y);
    if(x-1>=0 && maps[x-1][y]=='1') q.emplace(x-1,y);
    if(y-1>=0 && maps[x][y-1]=='1') q.emplace(x,y-1);
    if(y+1<m && maps[x][y+1]=='1') q.emplace(x,y+1);
  }
  return val;
}

int main(){
  ios_base::sync_with_stdio(0); cin.tie(0);
  cin>>n>>m;
  int maxn=0;
  for(int i=0;i<n;i++){
    string a;cin>>a;
    maps.push_back(a);
  }
  for(int i=0;i<n;i++){
    for(int j=0;j<m;j++){
      if(maps[i][j]=='1'){
        maxn=max(maxn,bfs(i,j,0));
      }
    }
  }
  cout<<maxn;
}