Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: meme_boi2
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-18 17:37:14
#include <bits/stdc++.h>
using namespace std;
int m, n, dx[] = {0,1,0,-1}, dy[] = {-1,0,1,0};
vector<vector<char>> mat(172,vector<char>(172,'0'));
bool vis[172][172];
int area = 0;
void dfs(int i,int j){
vis[i][j] = 1;
area++;
for(int k = 0; k < 4; k++){
int x = i + dx[k], y =j + dy[k];
if(!vis[x][y] && mat[x][y] == '1'){
dfs(x,y);
}
}
}
int32_t main(){
cin.tie(nullptr)->sync_with_stdio(0);
cin >> m >> n;
for(int i = 1; i <= m; i++){
for(int j = 1; j <= n; j++){
cin >> mat[i][j];
}
}
int ans = 0;
for(int i =1; i <= m; i++){
for(int j = 1; j <= n; j++){
if(mat[i][j] == '1' && !vis[i][j]){
area= 0;
dfs(i,j);
ans = max(ans,area);
}
}
}
cout << ans;
}
/*
c2_st66_largest_island
cd "c:\Users\RICOH-NB110\Desktop\Computer Programing\gchan\" ; if ($?) { g++ c2_st66_largest_island.cpp -o c2_st66_largest_island } ; if ($?) { .\c2_st66_largest_island}
*/