Kịch bản
Sau một ngày dài làm việc trong văn phòng và duyệt stackexchange.com , cuối cùng tôi cũng bước ra khỏi cửa lúc 16:58, đã mệt mỏi với ngày. Bởi vì tôi vẫn chỉ là một thực tập sinh, phương thức vận chuyển hiện tại của tôi là trên xe đạp. Tôi đi đến Peugeot Reynold 501 đáng tin cậy của tôi , nhưng trước khi tôi có thể lái nó, tôi cần phải mở khóa nó. Khóa là khóa kết hợp bốn chữ số tiêu chuẩn (0-9), thông qua khung và bánh trước. Khi tôi cố gắng tỉnh táo, tôi kéo tay lên để vào trong sự kết hợp.
Các thách thức
Bởi vì ngón tay của tôi rất mệt mỏi, tôi muốn biến khóa thành sự kết hợp chính xác với ít cử động nhất. Một chuyển động được định nghĩa là xoay theo một vị trí (36 độ), ví dụ có một chuyển động từ 5737
đến 5738
. Tuy nhiên, tôi có thể nắm bắt tới ba vòng liên tiếp cùng một lúc và xoay chúng thành một vòng , chỉ được tính là một chuyển động duy nhất. Ví dụ, cũng chỉ có một chuyển động từ 5737
đến 6837
hoặc đến 5626
. Di chuyển từ 5737
đến 6838
không phải là một chuyển động, vì các chữ số số 1,2 và 4 đã di chuyển theo cùng một hướng, nhưng độc lập với chữ số 3.
Do đó, đối với một kết hợp nhất định tôi có thể thấy trên khóa xe đạp (bất kỳ số nguyên 4 chữ số nào), số lượng chuyển động thấp nhất tôi có thể thực hiện để mở khóa là gì, và vâng, tôi có thể xoay theo bất kỳ lúc nào. Điều này có nghĩa là tôi có thể biến một số chữ số theo một hướng và các chữ số khác theo hướng khác: không phải tất cả các chuyển động của tôi sẽ theo chiều kim đồng hồ hoặc theo chiều kim đồng hồ cho mỗi lần mở khóa.
Bởi vì tôi lười biếng, mã mở khóa của tôi là 0000.
Đây là mã golf Tôi không thể bận tâm viết nhiều mã, vì vậy chương trình ngắn nhất về số byte sẽ thắng.
Đầu vào là từ stdin và mã của bạn sẽ xuất ra các kết hợp tôi có thể thấy ở mỗi bước sau mỗi chuyển động, bao gồm 0000 ở cuối. Mỗi đầu ra kết hợp phải được phân tách bằng dấu cách / dòng mới / dấu phẩy / dấu chấm / ký hiệu.
Ví dụ
Input: 1210
0100
0000
Input: 9871
9870
0980
0090
0000
Input: 5555
4445&3335&2225&1115&0005&0006&0007&0008&0009&0000
Input: 1234
0124 0013 0002 0001 0000
Tôi đã thử đăng bài này trên http: // bicenses.stackexchange.com , nhưng họ không thích nó ...
Tuyên bố từ chối trách nhiệm: Đầu tiên chơi golf, vì vậy bất cứ điều gì bị hỏng / bất kỳ thông tin bị thiếu nào hãy cho tôi biết! Ngoài ra tôi đã làm tất cả các ví dụ bằng tay, vì vậy có thể có các giải pháp liên quan đến các chuyển động ít hơn!
EDIT: Đối với các câu trả lời có nhiều đường dẫn giải pháp với số lượng chuyển động bằng nhau (thực tế là tất cả chúng), không có giải pháp ưa thích nào.