Submission

Status:
[PP-SSSSSSSSSSSSSSSSSSSSSS]

Score: 0

User: achinhchin

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-04-01 18:35:14

#include<iostream>
#include<queue>
#include <utility>
#define f first
#define s second
using namespace std;
typedef long long l;
using pl=pair<l,l>;
l n,m,d[][2]={{1,0},{0,1},{-1,0},{0,-1}},i,j,mx,tm,a,b;
queue<pl> B;
pl t;
bool A[171][171];
char ti;
int main() {
  cin.tie(nullptr)->sync_with_stdio(false);
  cin>>n>>m;for(i=1;i<=n;i++)for(j=1;j<=m;j++)cin>>ti,A[i][j]=ti=='1';
  for(i=1;i<=n;i++)for(j=1;j<=m;j++)if(A[i][j]){
    tm=0,B.push(make_pair(i,j));while(!B.empty()){
      tm++,t=B.front(),B.pop();
      for(auto k:d){
        a=t.f+k[0],b=t.s+k[1];
        if(A[a][b])B.push(make_pair(a,b)),A[a][b]=0;
      }
    }mx=max(mx,tm);
  }cout<<mx-1;
}