Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Quaoar
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.005 second
Submitted On: 2025-12-31 22:36:59
#include <iostream>
using namespace std;
int n,m;
int cnt = 0;
int mx = 0;
int map[171][171];
int visited[171][171];
void re(int x , int y){
if (map[x][y] == 0) return;
if (visited[x][y]) return;
map[x][y] = 0;
visited[x][y] = true;
if (x - 1 >= 0) re(x - 1 , y);
if (x + 1 < n) re(x + 1 , y);
if (y - 1 >= 0) re(x , y - 1);
if (y + 1 < m) re(x , y + 1);
cnt++;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> m;
for (int i = 0 ; i < n ; i++){
for (int j = 0 ; j < m ; j++){
char temp;
cin >> temp;
map[i][j] = temp - '0';
}
}
for (int i = 0 ; i < n ; i++){
for (int j = 0 ; j < m ; j++){
if (map[i][j] == 0){
continue;
}
re(i,j);
/*
for (int a = 0 ; a < n ; a++){
for (int b = 0 ;b < m ; b++){
cout << map[a][b] << " ";
}
cout << "\n";
}
cout << cnt << " " << mx << "\n";
*/
if (cnt > mx){
mx = cnt;
}
cnt = 0;
}
}
cout << mx;
}