Senaryo
Ofis ve tarama içinde uzun bir günlük çalışma slogging sonra stackexchange.com , sonunda gün zaten yorgun, Saat 16:58 kapıdan çıkacak. Hala sadece stajyer olduğum için şu anki ulaşım tarzım bisikletle. Kendime güvendiğim Peugeot Reynolds 501’e gidiyorum, ama yelken açmadan önce kilidini açmam gerekiyor. Kilit, çerçeve ve ön tekerlek boyunca standart dört haneli şifreli bir kilittir (0-9). Uyanık kalmaya çalışırken, kombinasyona girmek için elimi yukarı çekiyorum.
Meydan okuma
Parmaklarım çok yorgun olduğundan, en az hareketle kilidi doğru kombinasyona çevirmek istiyorum. Bir hareket, bir konumla (36 derece) bir dönüş olarak tanımlanır, örneğin 5737
ila arasında bir hareket vardır 5738
. Bununla birlikte, aynı anda arka arkaya ç halkayı aynı anda kavrayabiliyorum ve onları tek bir hareket olarak sayılan bir olarak çevirebiliyorum. Örneğin , arasında veya arasında yalnızca bir hareket var . Taşıma için basamak sayısı 1,2 ve 4, bağımsız bir şekilde basamaklı sayı 3, aynı yönde hareket, ancak gibi, tek bir hareket değildir.5737
6837
5626
5737
6838
Bu nedenle, belirli bir kombinasyon için, bisiklet kilidinde (4 basamaklı bir tamsayı) görebiliyorum, kilidi açmak için yapabileceğim en düşük hareket sayısı nedir ve evet, herhangi bir zamanda herhangi bir yönde dönebilirim. Bununla, bazı rakamları bir yönde, diğer rakamları da diğer yöne döndürebileceğimi kastediyorum: her hareket için tüm hareketlerim saat yönünde veya saat yönünde olmayacak.
Tembel olduğum için kilit açma kodum 0000.
Bu kod golf Çok fazla kod yazmaktan rahatsız olamam, bu yüzden bayt sayısındaki en kısa program kazanır.
Giriş, stdin'den gelir ve kodunuz, her hareketten sonra, 0000 de dahil olmak üzere, her adımda görebildiğim kombinasyonları çıkarmalıdır. Kombinasyon çıkışlarının her biri bir boşluk / newline / virgül / period / ve işaretiyle ayrılmalıdır.
Örnekler
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
Bunu http://bicycles.stackexchange.com adresinde göndermeyi denedim , ancak beğenmediler ...
Yasal Uyarı: İlk golf, bu yüzden herhangi bir kırık / herhangi bir eksik bilgi bana bildirin! Ayrıca tüm örnekleri el ile yaptım, bu yüzden daha az hareket içeren çözümler olabilir!
EDIT: Eşit sayıda harekete sahip (hemen hemen hepsi) çoklu çözüm yollarına sahip cevaplar için, tercih edilen bir çözüm yoktur.