Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: kingangel
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.005 second
Submitted On: 2026-03-14 10:43:15
#include<bits/stdc++.h>
using namespace std;
int dfs(vector<vector<int>>& island1,int i,int j,int x,int y){
if(j<0||i<0||i>=x||j>=y||island1[i][j]==0){
return 0;
}
island1[i][j]=0;
int ansarea=1;
ansarea+=dfs(island1,i-1,j,x,y);
ansarea+=dfs(island1,i+1,j,x,y);
ansarea+=dfs(island1,i,j-1,x,y);
ansarea+=dfs(island1,i,j+1,x,y);
return ansarea;
}
int main(){
int x,y,ans=0;
cin>>x>>y;
vector<vector<int>> island(x,vector<int>(y));
for(int i=0;i<x;i++){
string area;
cin>>area;
for(int j=0;j<y;j++){
island[i][j]=area[j]-'0';
}
}
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
if(island[i][j]==1){
ans=max(ans,dfs(island,i,j,x,y));
}
}
}
cout<<ans;
return 0;
}