Skenarionya
Setelah seharian bekerja keras di kantor dan menjelajah stackexchange.com , saya akhirnya keluar dari pintu pada pukul 16:58, sudah lelah dengan hari itu. Karena saya masih magang, moda transportasi saya saat ini adalah bersepeda. Saya menuju ke Peugeot Reynolds 501 saya yang tepercaya , tapi sebelum saya bisa berlayar, saya harus membuka kunci. Kunci adalah kunci kombinasi empat digit standar (0-9), melalui bingkai dan roda depan. Ketika saya mencoba untuk tetap terjaga, saya menarik tangan saya untuk memasukkan dalam kombinasi.
Tantangan
Karena jari saya sangat lelah, saya ingin memutar kunci ke kombinasi yang benar dengan gerakan paling sedikit. Satu gerakan didefinisikan sebagai rotasi oleh satu posisi (36 derajat), misalnya ada satu gerakan dari 5737
ke 5738
. Namun, saya dapat menangkap hingga tiga cincin berturut-turut pada saat yang sama, dan memutarnya sebagai satu , yang hanya dihitung sebagai satu gerakan. Misalnya hanya ada satu gerakan dari 5737
ke 6837
atau ke 5626
. Pindah dari 5737
ke 6838
bukan satu gerakan, karena angka nomor 1,2 dan 4 telah bergerak ke arah yang sama, tetapi secara independen dari angka 3.
Oleh karena itu, untuk kombinasi yang diberikan, saya dapat melihat pada kunci sepeda (bilangan bulat 4 digit), berapa jumlah gerakan terendah yang dapat saya buat untuk membuatnya tidak terkunci, dan ya, saya dapat memutar ke arah mana saja kapan saja. Maksud saya, saya dapat mengubah beberapa digit dalam satu arah dan digit lainnya di arah lain: tidak semua gerakan saya akan menjadi berlawanan arah jarum jam atau searah jarum jam untuk setiap pembukaan kunci.
Karena saya malas, kode pembuka kunci saya adalah 0000.
Ini adalah kode golf saya tidak bisa repot menulis banyak kode, jadi program terpendek dalam jumlah byte menang.
Input dari stdin, dan kode Anda harus menampilkan kombinasi yang dapat saya lihat di setiap langkah setelah setiap gerakan, termasuk 0000 di akhir. Setiap output kombinasi harus dipisahkan oleh spasi / baris baru / koma / periode / ampersand.
Contohnya
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
Saya mencoba memposting ini di http://bicycles.stackexchange.com , tetapi mereka tidak menyukainya ...
Penafian: Golf pertama, jadi apa pun yang rusak / informasi yang hilang beri tahu saya! Saya juga melakukan semua contoh dengan tangan, jadi mungkin ada solusi yang melibatkan lebih sedikit gerakan!
EDIT: Untuk jawaban yang memiliki banyak jalur solusi dengan jumlah gerakan yang sama (hampir semuanya), tidak ada solusi yang disukai.