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;
}