Lý lịch
Tôi có một loạt các hình ảnh đen trắng cũ và sần sùi. Một số trong số chúng mô tả dây leo leo trên tường, số khác thì không - nhiệm vụ của bạn là phân loại chúng cho tôi.
Đầu vào và đầu ra
Đầu vào của bạn là một mảng 2D hình chữ nhật gồm các bit A , được đưa ra ở bất kỳ định dạng thuận tiện nào. Nó sẽ không trống, nhưng nó không được đảm bảo chứa cả 0 và 1. Mảng mô tả một cây nho nếu các điều kiện sau đây giữ:
- Hàng dưới cùng của A chứa ít nhất một 1. Đây là những gốc của cây nho.
- Mỗi 1 trong A được kết nối với hàng dưới cùng bằng một đường dẫn 1 chỉ đi sang trái, phải và xuống (không lên và không theo đường chéo). Những con đường này là những nhánh của cây nho.
Đầu ra của bạn là một giá trị trung thực nhất quán nếu đầu vào mô tả một cây nho và một giá trị giả mạo nhất quán khác.
Ví dụ
Mảng này mô tả một cây nho:
0 0 1 0 0 1
0 1 1 0 0 1
0 1 0 1 1 1
1 1 0 1 0 1
0 1 1 1 0 1
0 0 1 0 1 1
Đầu vào này không mô tả một cây nho, vì có 1 ở giữa đường viền bên phải không được kết nối với rễ bằng một nhánh:
0 0 0 1 1 0
0 1 0 1 1 1
0 1 0 1 0 1
0 1 1 1 1 0
0 0 1 1 0 1
Mảng all-0 không bao giờ mô tả một cây nho, nhưng mảng all-1 luôn làm như vậy.
Quy tắc và tính điểm
Bạn có thể viết một chương trình đầy đủ hoặc một chức năng. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép.
Các trường hợp thử nghiệm
Đầu vào trung thực:
1
0
1
1
01
11
0000
0111
1100
1001
1111
1111
1111
1111
001001
011001
010111
110101
011101
001011
1011011
1001001
1111111
0100000
0111111
1111001
1001111
1111101
0000000
0011100
0010100
0011100
0001000
1111111
0001000
0011100
0010100
0010100
Đầu vào giả:
0
1
0
10
01
000
000
000
011
110
000
111111
000000
101011
111001
010010
001000
000010
110001
001100
111111
110101
010011
111011
000110
010111
010101
011110
001101
11000000
10110001
10011111
11110001
01100011
00110110
01101100
01100001
01111111