Submission

Status:

[PPPP-SSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: krittaphot

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

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-05 20:23:20

#include <bits/stdc++.h>

using namespace std;

int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};

int main()
{
	int n,m;
	cin >> n >> m;
	vector<string> mp(n);
	for(int i = 0;i<n;i++){
		cin >> mp[i];
	}
	int ans = 0;
	for(int i = 0;i<n;i++){
		for(int j = 0;j<m;j++){
			if(mp[i][j] == '1'){
				queue<pair<int,int>> q;
				q.push({i,j});
				int cnt = 0;;
				while(!q.empty()){
					int x = q.front().first;
					int y = q.front().second;
					q.pop();
					mp[x][y] = '0';
					cnt++;
					
					for(int k = 0;k<4;k++){
						int nx = x+dx[k];
						int ny = y+dy[k];
						if(nx >= 0 && ny >= 0 && nx < n && ny < m && mp[nx][ny] == '1'){
							q.push({nx,ny});
						}
					}
				}
				ans = max(ans,cnt);
			}
			
		}
	}
	
	cout << ans;
	
	
}