Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Nay-O

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

Language: cpp

Time: 0.003 second

Submitted On: 2026-02-24 09:45:49

#include<bits/stdc++.h>
using namespace std;
using pii = pair<int,int>;

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

int main(){
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	
	int n,m; cin >>n>>m;
	char arr[n][m];
	
	for(int i = 0; i < n; i++){
		for(int j = 0; j <m;j++){
			cin >> arr[i][j];
		}
	}
	
	queue<pii> q;
	int ans = 0;
	
	for(int i = 0; i < n; i++){
		for(int j = 0; j < m; j++){
			if(arr[i][j]=='0') continue;
			int c=0;
			q.push({i,j});
			while(!q.empty()){
				int a = q.front().first,b = q.front().second;
				q.pop();
				if(arr[a][b]=='0') continue;
				c++;
				arr[a][b]='0';
				for(int k = 0; k < 4; k++){
					int yy = a+dy[k],xx=b+dx[k];
					if(yy>n-1||yy<0||xx>m-1||xx<0||arr[yy][xx]=='0') continue;
					q.push({yy,xx});
				}
			}
			ans = max(ans,c);
		}
	}
	
	cout << ans;
	
	return 0;
}