Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: tha_smith
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.003 second
Submitted On: 2026-02-27 14:31:35
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
ios_base::sync_with_stdio(0),cin.tie(0);
ll yy[4] = {-1,0,0,1};
ll xx[4] = {0,-1,1,0};
ll N,M;
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];
}
}
ll ans=0;
vector<vector<bool>> vis(N,vector<bool>(M,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 || nx>=N || ny<0 || ny>=M)
continue;
if(vis[nx][ny] || grid[nx][ny]=='0')
continue;
vis[nx][ny] = 1;
q.push({nx,ny});
cnt++;
}
}
ans = max(ans,cnt);
}
}
}
cout << ans;
}