Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: okazagiFragment

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-20 21:37:10

#include <bits/stdc++.h>
using namespace std;
#define okazaki cin.tie(nullptr)->sync_with_stdio(0),cout.tie(0);
#define int long long
#define pii pair<int,int>
#define tii tuple<int,int,int>
int n,m,q;
signed main(void) {
	okazaki;
	cin>>n>>m;
	char grid[n][m];
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			cin>>grid[i][j];
		}
	}
	int ans=0;
	int dix[4]={-1,1,0,0};
	int diy[4]={0,0,-1,1};
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			if(grid[i][j]=='1'){
				int cnt=0;
				queue<pii> q;
				q.push({i,j});
				//cout<<'*';
				grid[i][j]='0';
				while(!q.empty()){
					auto[x,y]=q.front();
					q.pop();
					cnt++;
					//cout<<cnt<<' ';
					for(int i=0;i<4;i++){
						int nx=x+dix[i];
						int ny=y+diy[i];
						if(nx>=n||ny>=m||nx<0||ny<0||grid[nx][ny]=='0'){
							continue;
						}
						grid[nx][ny]='0';
						q.push({nx,ny});
					}
				}
				ans=max(ans,cnt);
			}
		}
	}
	cout<<ans;
}