Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Hxluk.ka
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-07 23:05:50
#include <iostream>
#include <queue>
#include <utility>
using namespace std;
const int na=173, dir[4][2]={{1,0}, {0,1}, {-1,0}, {0,-1}};
char t;
int n, mp[na][na], mx, vs[na][na], m, cnt;
queue<pair<int, int>> q;
int main() {
cin.tie(0)->sync_with_stdio(0);
cin>>n>>m;
for (int i=1; i<=n; i++) for (int j=1; j<=m; j++) cin>>t, mp[i][j]=t-'0';
for (int i=1; i<=n; i++) for (int j=1; j<=m; j++) {
if (vs[i][j]||!mp[i][j]) continue;
cnt=1;
vs[i][j]=1;
q.push({i, j});
while (!q.empty()) {
auto [x,y]=q.front(); q.pop();
for (int k=0; k<4; k++) {
int nx=x+dir[k][0], ny=y+dir[k][1];
if (vs[nx][ny]||!mp[nx][ny]) continue;
vs[nx][ny]++;
cnt++;
q.push({nx, ny});
}
}
mx=max(mx, cnt);
}
cout<<mx;
}