Submission
Status:
[-SSSSSSSSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: House123
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-09 10:56:39
#include <bits/stdc++.h>
using namespace std;
int n,m;
int nx = 170;
vector<vector<int>> lake(nx,vector<int>(nx));
int jj[4] = {1,-1,0,0};
int ii[4] = {0,0,1,-1};
int dfs(int i, int j){
int size_island = 1;
lake[i][j] = 0;
for(int a = 0; a < 4; a++){
int delta_i = i+ii[a];
int delta_j = j+jj[a];
if(delta_i >= 1 && delta_i <= n && delta_j >= 1 && delta_j <= m){
if(lake[delta_i][delta_j] == 1){
size_island+=dfs(delta_i,delta_j);
}
}
}
return size_island;
}
int main(){
cin >> n >> m;
for(int i = 1; i <= n;i++){
for(int j= 1; j <= m;j++){
cin >> lake[i][j]; //cin those lake!
}
}
int max_size_island = 0;
for(int i = 1; i <= n;i++){
for(int j= 1; j <= m;j++){
if(lake[i][j] == 1){
int answer = dfs(i,j);
if( answer > max_size_island){
max_size_island = answer;
}
}
}
}
cout << max_size_island;
return 0;
}