Phân vùng ảnh


Submit solution

Points: 3
Time limit: 1.0s
Memory limit: 98M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Toto học môn xử lý ảnh số và được học về phân vùng ảnh. Cho một ảnh nhị phân là một ma trận cỡ \(n*m\) chứa các số \(0\) và số \(1\) thể hiện cho mầu trắng và màu đen. Màu trắng thể hiện cho đối tượng ảnh còn màu đen thể hiện cho nền.

Một vùng trong ảnh đen trắng là một vùng chứa toàn những ô trắng (số \(0\)) sao cho 2 ô bất kỳ trong vùng này liên thông với nhau theo láng giềng 8 và 2 ô ở hai vùng khác nhau thì không tồn tại đường đi nào liên thông láng giềng 8 với nhau theo.

Toto được thầy giao cho lập trình tìm các vùng trong một ảnh cho trước, nhưng chưa biết lập trình thế nào bạn hãy giúp Toto nhé

Phân vùng

Input

Dòng đầu chứa hai số \(n, m\) là kích thước của ma trận ảnh \((1 \le n,m \le 200)\)

Tiếp theo là ma trận kích thước \(n*m\) chứa các số \(0\) và \(1\)

Output

Dòng đầu chứa số vùng của ảnh

Dòng tiếp theo chứa diện tích (số ô) từng vùng được sắp xếp tăng dần

Ví dụ

Input

24 23
1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
1   1   1   1   1   1   1   0   0   0   0   0   0   0   0   1   1   1   1   1   1   1   1
1   1   1   1   1   1   1   1   1   1   0   1   1   0   1   1   1   1   1   1   1   1   1
1   1   1   1   1   1   1   1   1   1   0   1   1   0   1   1   1   1   1   1   1   1   1
1   1   1   1   1   1   1   1   1   1   0   1   1   0   1   1   1   1   1   1   1   1   1
1   1   1   1   0   0   1   1   1   1   1   0   0   1   1   1   1   1   1   1   1   1   1
1   1   0   0   0   0   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
1   1   0   1   0   0   0   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
1   1   0   1   0   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
1   1   1   0   0   1   1   1   1   1   1   1   1   1   1   0   1   1   1   1   0   1   1
1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   0   1   0   0   1   1   1
1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   0   1   1   1   1   1
1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   0   0   1   1   1
1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   0   0   0   1   1
1   1   1   1   1   1   1   0   0   0   0   1   1   1   1   1   1   1   0   0   0   1   1
1   1   1   1   1   1   0   1   1   1   1   0   1   1   1   1   1   0   0   0   1   1   1
1   1   1   1   1   1   0   1   1   1   1   0   1   1   1   1   1   1   1   1   0   1   1
1   1   1   1   1   1   0   1   1   1   1   0   1   1   1   1   1   1   1   1   1   0   1
1   1   1   1   1   1   0   1   1   1   1   0   1   1   1   1   1   1   1   1   0   1   1
1   1   1   1   1   1   1   0   0   0   0   1   1   1   1   1   1   1   1   0   1   1   1
1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1

Output

4
14 16 16 21
tichpx

Comments

There are no comments at the moment.