Submission
Status:
[PPP-SSSSSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: Seng
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.002 second
Submitted On: 2026-02-21 10:25:31
#include <bits/stdc++.h>
using namespace std;
queue<pair<int, int>> q;
int main(){
int n, m;cin >> n >> m;
char a[n+5][m+5];
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
int mx = INT_MIN;
bool vis[n+5][m+5];
for(int i = 0; i <= n+1; i++){
for(int j = 0; j <= m+1; j++){
a[i][j] = '0';
vis[i][j] = false;
}
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
cin >> a[i][j];
}
}
for(int i = 1; i<= n; i++){
for(int j = 1; j <= m; j++){
if(a[i][j] == '0') continue;
int cnt = 0;
q.push({j, i});
while(!q.empty()){
int x = q.front().first;
int y = q.front().second;
cnt++;
//cout << "x = " << x << ' ' << "y = " << y << '\n';
q.pop();
vis[y][x] = true;
for(int k = 0; k < 4; k++){
int xx = x+dx[k];
int yy = y+dy[k];
if(a[yy][xx] == '0') continue;
if(xx < 1 || yy < 1 || xx > m || yy > n) continue;
if(vis[yy][xx]) continue;
q.push({xx, yy});
a[yy][xx] = '0';
vis[yy][xx] = true;
}
}
mx = max(mx, cnt);
}
}
cout << mx;
return 0;
}