Bisikletinizi 3 haneli şifreli kilitle kilitlediniz. Şimdi bir gezintiye çıkmak istiyorsunuz ve aşağıdaki programın yardımıyla kilidini açmanız gerekiyor.
Giriş
1. parametre
Kilidinizin rakam kombinasyonu kilitli durumda. 2. parametreden farklı olmalıdır (= kilit açık kombinasyonu durumun ). (Ya da bisikletin çalınmış olabilir!)
Menzil 000..999. Önde gelen sıfırlar ihmal edilmemelidir.
2. parametre
Kilidinizin rakam kombinasyonu açık durumda. Bu değer senin amacın.
Menzil 000..999. Önde gelen sıfırlar ihmal edilmemelidir.
Çıktı
İlk durum (her zaman 1. parametredir) ve son adım (her zaman 2. parametre olan) dahil olmak üzere her "dönme" den sonra her bir kombinasyon kilidinin bir listesi.
Algoritma
Kilitlenmemiş durumda doğru haneye ulaşana kadar ilk haneyi birer birer "döndürmeye" başlarsınız . Ancak, tüm kilit açma kodunu bildiğiniz için, kilitlenmemiş haldeyken haneye ulaşmak için en küçük döndürme miktarına ihtiyaç duyduğunuz yönde döndürün . Beraberlik durumunda, istediğiniz yönü seçebilirsiniz.
Doğru ilk haneye ulaştığınızda, aynı prosedürü 2. ve ardından 3. ile başlatırsınız.
Rakamların sırası, bir daire olarak anlaşılmalıdır:
... 9 0 1 2 3 4 5 6 7 8 9 0 1 2 ...
Bunun anlamı, 1'den 9'a kadar olan en küçük dönme miktarının olmadığıdır.
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9
= 8
fakat
1 -> 0 -> 9
= 2
notlar
- Varsayılan G / Ç kurallarına güvenebilirsiniz
- Parametrelerin sırasını değiştirebilirsiniz.
Örnekler
Örnek 1, doğru
Input: 999 001
Output:
999
099
009
000
001
2. Örnek, doğru
Input: 000 292
Output:
000
100
200
290
291
292
Örnek 3, yanlış çıktı
Input: 999 121
Wrong output:
999
899 // Wrong because wrong rotation direction.
799
699
...
Correct output:
999
099
199
109
119
129
120
121
Örnek 4, yanlış giriş
Input: 1 212 // Wrong because no leading zeros.
Bu kod golf , en kısa cevap kazanır.