Lý lịch
Một polyomino được gọi là L-lồi , nếu có thể di chuyển từ bất kỳ ô nào sang bất kỳ ô nào khác bằng một đường dẫn hình chữ L, nghĩa là một đường đi theo hướng chính và thay đổi hướng nhiều nhất một lần. Ví dụ, polyomino của 1
s trong hình
0 0 1 1 1 0
1 1 1 1 0 0
1 1 0 0 0 0
không phải là L-lồi, vì cả hai đường dẫn hình chữ L từ dưới cùng bên trái 1
lên trên cùng bên phải 1
đều chứa a 0
:
0>0>1>1>1 0
^ ^
1 1 1 1 0 0
^ ^
1>1>0>0>0 0
Tuy nhiên, polyomino của 1
s trong hình này là L-lồi:
0 1 1 1 0 0
1 1 1 1 1 1
0 1 1 0 0 0
Đầu vào
Đầu vào của bạn là một mảng bit 2D ở định dạng gốc của ngôn ngữ của bạn hoặc dưới dạng chuỗi được phân tách bằng dòng mới nếu ngôn ngữ của chúng tôi thiếu mảng. Nó được đảm bảo để chứa ít nhất một 1
.
Đầu ra
Đầu ra của bạn sẽ là một giá trị trung thực nếu tập hợp 1
s là một polyomino L-lồi và giá trị giả nếu không. Các đầu ra này phải nhất quán: bạn phải xuất cùng một giá trị trung thực cho tất cả các đầu vào L-lồi và cùng một giá trị giả cho các đầu vào khác. Lưu ý rằng một tập hợp 1
s bị ngắt kết nối (không phải là polyomino) dẫn đến đầu ra giả.
Quy tắc và chấm đ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
Các trường hợp kiểm tra này cũng sẽ hoạt động nếu bạn xoay hoặc phản ánh các mảng hoặc thêm các hàng 0
s vào bất kỳ đường viền nào.
False instances
01
10
111
101
111
1101
1111
1110
1100
1000
0011
01100
11110
01110
00110
011000
011110
001111
True instances
1
01
11
010
111
010
001
011
111
11100
11110
01100
01000
011000
011000
111100
111111
001000