ĐẾM ĐẢO

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

A black and white checkered pattern AI-generated content may be incorrect.

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

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. trungnam (6/7)
  2. sythai (5/8)
  3. npk1605 (5/10)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]