Mục đích của thử thách này là để xác định xem một tập hợp các mảnh một chiều có thể được lát gạch để tạo thành một khối liên tục hữu hạn hay không.
Một mảnh là một chuỗi không trống, hữu hạn của các số 0 và các số bắt đầu và kết thúc bằng một số. Một số mảnh có thể là 1
, 101
, 1111
, 1100101
.
Ốp lát có nghĩa là sắp xếp các mảnh sao cho một khối liền kề duy nhất được hình thành. Một từ một mảnh có thể chiếm vị trí của số 0, nhưng không phải từ một mảnh, từ một mảnh khác.
Tương tự, nếu chúng ta xem một cái là "vật liệu rắn" và số 0 là "lỗ", các mảnh sẽ khớp với nhau để tạo thành một đoạn duy nhất, không để lại bất kỳ lỗ nào.
Để tạo thành một lát, các mảnh chỉ có thể được dịch chuyển dọc theo không gian một chiều của chúng. (Chúng không thể được phân chia, hoặc phản ánh). Mỗi mảnh được sử dụng chính xác một lần.
Ví dụ
Ba mảnh 101
, 11
, 101
có thể được lát gạch như thể hiện trong những điều sau đây, trong đó mỗi mảnh được đại diện với sự thay đổi cần thiết:
101
11
101
vì vậy ốp lát thu được là
111111
Như một ví dụ thứ hai, các mảnh 11011
và 1001101
không thể được lát gạch. Đặc biệt, sự thay đổi
11011
1001101
không hợp lệ vì có hai cái va chạm; và
11011
1001101
không hợp lệ vì kết quả sẽ chứa số không.
Quy tắc bổ sung
Đầu vào là một tập hợp của một hoặc nhiều mảnh. Bất kỳ định dạng hợp lý đều được cho phép; ví dụ:
- Một danh sách các chuỗi, trong đó mỗi chuỗi có thể chứa hai ký tự nhất quán, khác nhau;
- Một số mảng, trong đó mỗi mảng chứa vị trí của các mảng cho một mảnh;
- Một danh sách các số nguyên (lẻ) như biểu diễn nhị phân của mỗi số xác định một mảnh.
Đầu ra phải là một giá trị trung thực nếu có thể ốp lát và ngược lại là một giá trị giả. Giá trị đầu ra không nhất quán; đó là, chúng có thể khác nhau cho các đầu vào khác nhau.
Các chương trình hoặc chức năng được cho phép, trong bất kỳ ngôn ngữ lập trình . Sơ hở tiêu chuẩn bị cấm.
Mã ngắn nhất trong byte thắng.
Các trường hợp thử nghiệm
Mỗi đầu vào nằm trên một dòng khác nhau
Sự thật
1
111
1, 1
11, 111, 1111
101, 11, 1
101, 11, 101
10001, 11001, 10001
100001, 1001, 1011
10010001, 1001, 1001, 101
10110101, 11001, 100001, 1
110111, 100001, 11, 101
1001101, 110111, 1, 11, 1
Giả
101
101, 11
1, 1001
1011, 1011
11011, 1001101
1001, 11011, 1000001
1001, 11011, 1000001, 10101
101101
sẽ là sự thật, mặc dù không có số lượng hữu hạn trong số chúng dẫn đến một khối liền kề.