Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: tha_smith
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.004 second
Submitted On: 2026-03-07 14:14:51
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
ios_base::sync_with_stdio(0),cin.tie(0);
ll N,M,yy[4]={-1,0,0,1},xx[4]={0,-1,1,0};
cin >> N >> M;
vector<vector<char>> grid(N,vector<char>(M));
for(ll i=0; i<N; i++) {
for(ll j=0; j<M; j++) {
cin >> grid[i][j];
}
}
vector<vector<bool>> vis(N,vector<bool>(M,0));
ll ans=0;
for(ll i=0; i<N; i++) {
for(ll j=0; j<M; j++) {
if(!vis[i][j] && grid[i][j]=='1') {
vis[i][j] = 1;
queue<pair<ll,ll>> q;
q.push({i,j});
ll cnt=1;
while(!q.empty()) {
auto [x,y] = q.front();
q.pop();
for(int k=0; k<4; k++) {
ll nx = x+xx[k];
ll ny = y+yy[k];
if(nx<0 || ny<0 || nx>=N || ny>=M)
continue;
if(grid[nx][ny]=='0' || vis[nx][ny])
continue;
vis[nx][ny]=1;
q.push({nx,ny});
cnt++;
}
}
ans = max(ans,cnt);
}
}
}
cout << ans;
}