Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: skibididopdop
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.004 second
Submitted On: 2026-02-26 16:14:43
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,m;
int dx[]={-1,0,1,0};
int dy[]={0,1,0,-1};
cin>>n>>m;
vector <vector <char>> v(n,(vector<char>(m)));
vector <vector <bool>> check(n,(vector<bool>(m,0)));
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
cin>>v[i][j];
}
}
queue <pair<int,int>> q;
vector <int> mx;
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
if (v[i][j]=='1'){
if (check[i][j]==true) continue;
q.push({i,j});
check[i][j]=1;
int sum=1;
while (!q.empty()) {
int x=q.front().first;
int y=q.front().second;
//cout<<x<<" "<<y<<"\n";
q.pop();
for (int k=0;k<4;k++){
int uu=x+dx[k];
int vv=y+dy[k];
if (uu>=0&&vv>=0&&uu<=n-1&&vv<=m-1&&v[uu][vv]=='1'&&check[uu][vv]!=1){
q.push({uu,vv});
check[uu][vv]=1;
sum++;
}
}
}
mx.push_back(sum);
}
}
}
int ans=0;
for (int i=0;i<mx.size();i++){
if (mx[i]>ans){
ans=mx[i];
}
}
cout<<ans;
}