Latar Belakang
Saya memiliki banyak gambar hitam-putih tua dan kasar. Beberapa dari mereka menggambarkan tanaman merambat memanjat di dinding, yang lain tidak - tugas Anda adalah mengklasifikasikannya untuk saya.
Masukan dan keluaran
Input Anda adalah array 2D persegi panjang dari bit A , diberikan dalam format apa pun yang nyaman. Tidak akan kosong, tetapi tidak dijamin mengandung 0s dan 1s. Array menggambarkan sulur jika kondisi berikut ini berlaku:
- Baris bawah A mengandung setidaknya satu 1. Ini adalah akar dari pokok anggur.
- Setiap 1 dalam A terhubung ke baris bawah dengan jalur 1s yang hanya bergerak ke kiri, kanan dan bawah (tidak naik, dan tidak secara diagonal). Jalan-jalan ini adalah cabang-cabang dari pokok anggur.
Output Anda adalah nilai kebenaran yang konsisten jika input menggambarkan anggur, dan nilai palsu yang konsisten sebaliknya.
Contohnya
Array ini menggambarkan sulur:
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
Input ini tidak menggambarkan anggur, karena ada 1 di tengah perbatasan kanan yang tidak terhubung ke akar oleh cabang:
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
Semua-0 array tidak pernah menggambarkan anggur, tetapi semua-1 array selalu.
Aturan dan penilaian
Anda dapat menulis program atau fungsi lengkap. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Uji kasus
Masukan yang benar:
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
Masukan palsu:
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