Trò chơi BattleBlock Theater thỉnh thoảng có một câu đố là phiên bản tổng quát của Lights Out . Bạn đã có ba khối liền kề, mỗi khối chỉ ra một mức từ 1 đến 4 bao gồm các thanh, ví dụ:
|
||||
||
Nếu bạn chạm vào một khối, thì khối đó cũng như bất kỳ khối liền kề nào sẽ tăng cấp độ của nó (gói lại từ 4 đến 1). Câu đố được giải quyết khi cả ba khối thể hiện cùng một cấp độ (không quan trọng là cấp độ nào). Vì, thứ tự bạn chạm vào các khối không quan trọng, chúng tôi biểu thị một giải pháp bằng tần suất mỗi khối được chạm vào. Giải pháp tối ưu cho đầu vào trên sẽ là 201
:
| --> || --> ||| |||
|||| | || |||
|| || || --> |||
Trò chơi rất dễ dàng khái quát bất kỳ số khối nào, mặc dù đối với một số số, không phải tất cả các cấu hình đều có thể giải được.
Các thách thức
Đưa ra một chuỗi các cấp độ khối, trả về tần suất mỗi khối cần được chạm để giải câu đố. Ví dụ, ví dụ trên sẽ được đưa ra 142
và có thể mang lại 201
kết quả. Nếu không có giải pháp, hãy trả về một số đầu ra nhất quán mà bạn chọn, có thể phân biệt với tất cả các giải pháp tiềm năng, ví dụ -1
hoặc một chuỗi trống.
Bạn có thể viết một hàm hoặc chương trình, nhận đầu vào thông qua STDIN, đối số dòng lệnh hoặc đối số hàm, trong bất kỳ danh sách thuận tiện hoặc định dạng chuỗi nào, và đầu ra tương tự thông qua giá trị trả về hoặc bằng cách in ra STDOUT.
Mã của bạn sẽ trả về kết quả chính xác cho tất cả các trường hợp thử nghiệm trong vòng một phút trên một máy hợp lý. (Đây không phải là một giới hạn hoàn toàn nghiêm ngặt, vì vậy nếu giải pháp của bạn mất một phút và mười giây, thì tốt thôi, nhưng nếu mất 3 phút thì không. Một thuật toán tốt sẽ dễ dàng giải quyết chúng trong vài giây.)
Đây là mã golf, vì vậy câu trả lời ngắn nhất (tính bằng byte) sẽ thắng.
Ví dụ
Các giải pháp không phải là duy nhất, vì vậy bạn có thể nhận được kết quả khác nhau.
Input Output
1 0
11 00
12 No solution
142 201
434 101
222 000
4113 0230
32444 No solution
23432 10301
421232 212301
3442223221221422412334 0330130000130202221111
22231244334432131322442 No solution
111111111111111111111222 000000000000000000000030
111111111111111111111234 100100100100100100100133
412224131444114441432434 113013201011001101012133
Theo tôi biết, có chính xác 4 giải pháp cho mỗi đầu vào trong đó số khối là 0 mod 3 hoặc 1 mod 3 và có 0 hoặc 16 giải pháp trong đó có 2 mod 3.