Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Score: 100
User: njoop
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.005 second
Submitted On: 2025-03-25 08:52:28
#include <iostream>
using namespace std;
int n, m, num, dx[4] = {0, 0, 1, -1}, dy[4] = {1, -1, 0, 0}, mxnum = 0;
char wall[1010][1010];
void isRoom(int x, int y) {
if(x < 0 || x >= n) return;
if(y < 0 || y >= m) return;
num++;
wall[x][y] = '0';
for(int i=0; i<4; i++) {
if(wall[x+dx[i]][y+dy[i]] == '1') {
isRoom(x+dx[i], y+dy[i]);
}
}
}
int main() {
cin >> n >> m;
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
cin >> wall[i][j];
}
}
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
if(wall[i][j] == '1') {
num = 0;
isRoom(i, j);
mxnum = max(mxnum, num);
}
}
}
cout << mxnum;
return 0;
}