Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Quaoar
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.005 second
Submitted On: 2026-03-11 20:45:21
#include <bits/stdc++.h>
using namespace std;
int cnt;
void re(int x , int y , vector<vector<int>> &grid){
if (grid[x][y] == 0 || grid[x][y] == -1) return;
int n = grid.size();
int m = grid[0].size();
grid[x][y] = -1;
cnt++;
int dx[] = {-1,1,0,0};
int dy[] = {0,0,-1,1};
for (int i = 0 ; i < 4 ; i++){
int nx = x + dx[i];
int ny = y + dy[i];
if (nx < 0 || nx >= n || ny < 0 || ny >= m) continue;
re(nx,ny,grid);
}
}
int main(){
int n , m;
cin >> n >> m;
vector<vector<int>> grid(n , vector<int> (m));
for (int i = 0 ; i < n ; i++){
string a;
cin >> a;
for (int j = 0 ; j < m ; j++){
grid[i][j] = a[j] - '0';
}
}
int mx = 0;
for (int i = 0 ; i < n ; i++){
for (int j = 0 ; j < m ; j++){
if (grid[i][j] == 1){
cnt = 0;
re(i,j,grid);
mx = max(mx , cnt);
}
}
}
cout << mx;
return 0;
}