Submission
Status:
[PPP-SSSSSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: s0m30n3
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-18 22:09:24
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
char table[200][200];
bool vis[200][200];
int dx[4] = {-1,1,0,0};
int dy[4] = {0,0,-1,1};
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>table[i][j];
}
}
int max_area = -1;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(table[i][j]=='1'&&!vis[i][j]){
int area = 1;
queue<pair<int,int>> q;
q.push({i,j});
vis[i][j]=true;
while(!q.empty()){
auto [u,v] = q.front();
q.pop();
for(int k=0;k<4;k++){
int ny=u+dy[k];
int nx=v+dx[k];
if(ny<0||nx<0||ny>=n||nx>=m) continue;
if(vis[ny][nx]) continue;
if(table[ny][nx]=='0') continue;
vis[ny][nx]=true;
q.push({ny,nx});
area++;
}
}
max_area = max(max_area , area);
}
}
}
cout << max_area;
}