Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: samsenpisardmoo

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

Language: cpp

Time: 0.003 second

Submitted On: 2026-02-15 11:12:28

#include <bits/stdc++.h>

using namespace std;

int main()
{
	cin.tie(NULL) -> sync_with_stdio(false);	
	
	int n,m,cnt=0,mx=0;
	queue<pair<int, int>> q;
	cin >> n >> m;
	
	char mp[n][m]; 
	int vs[n][m];

	
	for(int i=0; i<n; i++)
	{
		for(int j=0; j<m; j++)
		{
			cin >> mp[i][j];
			vs[i][j] = 0;
		}
	}
	
	for(int i=0; i<n; i++)
	{
		for(int j=0; j<m; j++)
		{
			cnt=0;
			if(!vs[i][j] && mp[i][j]=='1')
			{
				vs[i][j] = 1;
				q.push({i,j});
				
				while(!q.empty())
				{
					int f = q.front().first;
					int k = q.front().second;
					q.pop();
					
					if(f+1 < n && mp[f+1][k] == '1' && !vs[f+1][k]) q.push({f+1,k}),vs[f+1][k] = 1 ; 
					if(f-1 >= 0 && mp[f-1][k] == '1'&& !vs[f-1][k]) q.push({f-1,k}),vs[f-1][k] = 1 ;
					if(k+1 < m && mp[f][k+1] == '1' && !vs[f][k+1]) q.push({f,k+1}),vs[f][k+1] = 1 ;
					if(k-1 >= 0 && mp[f][k-1] == '1' && !vs[f][k-1]) q.push({f,k-1}),vs[f][k-1] = 1 ;
					
					cnt++;
				}
			}
			
			mx=max(cnt,mx);	
		}
		
	}
	
	cout << mx;

	
	
	
}