Bạn được cung cấp một bản đồ khu vực biển là một lưới các hình vuông, mỗi hình vuông đại diện cho một khu vực đất hoặc biển. Hình dưới đây là một ví dụ về một bản đồ với ô màu đen là đất, màu trắng là biển.
Bạn có thể đi từ một khu vực đất vuông này đến một khu vực đất vuông khác nếu chúng nằm kề nhau theo chiều ngang, chiều dọc hoặc đường chéo trên bản đồ. Hai khu vực được coi là cùng một hòn đảo nếu và chỉ nếu bạn có thể đi từ một khu vực này đến khu vực khác có thể thông qua các khu vực đất khác. Khu vực biển trên bản đồ được bao quanh bởi biển và do đó bạn không thể đi ra khỏi khu vực.
Bạn được yêu cầu viết một chương trình đọc bản đồ và đếm số hòn đảo trên đó. Ví dụ, bản đồ trong dưới đây bao gồm ba hòn đảo
Dữ liệu vào:
Dữ liệu nhập bao gồm một loạt các bộ dữ liệu, mỗi bộ dữ liệu có định dạng như sau:
+ Dòng 1: ghi hai số nguyên \(w\ h\ (1\ \leq \ w,h\ \leq \ 50)\);
+ Tiếp theo là \(h\) dòng, mỗi dòng gồm \(w\) số nguyên mô tả quần đảo. Mỗi số nguyên chỉ có thể là 0 hoặc 1.
Kết thúc dữ liệu nhập được chỉ định bằng một dòng chứa hai số không.
Kết quả:
Đối với mỗi bộ dữ liệu, in ra số lượng các hòn đảo trên một dòng.
Ví dụ:
Input | Output |
---|---|
1 1 0 2 2 0 1 1 0 3 2 1 1 1 1 1 1 5 4 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 1 0 5 4 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 5 5 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 | 0 1 1 3 1 9 |
Code tích cực |
---|
Trong 24h |
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |