Farklı tek basamaklı pozitif tamsayıların başlangıç sırasını ve parçanın giriş çıktıları olarak uzunluğunu veren veya sayıların bitiş sırasını döndüren bir program veya işlev yazmalısınız.
Girdi [5,1,2,6,7] and 14
aşağıdaki yarışı tanımlar:
--------------
76215 ->
--------------
Yarış kuralları
- Parça etrafına sarılır ve rakamlar birden fazla tur atabilir.
- Adım sırası döngüseldir ve başlangıç konumuna bağlıdır. Örneğimizde
5 1 2 6 7 5 1 2 ...
. - Aynı konumda birden fazla basamak olamaz.
Her basamağın
digit_value
adım başına hücre hızı vardır . Bir rakamı veya sürekli bir rakam bloğunu sollamak ekstra bir adım gerektirir. Rakam bunun için gerekli hıza sahip değilse, (blok) rakamlardan önce duracaktır. Örnekler:[41 ] => [ 1 4 ] 4 overtakes 1 [2 1 ] => [ 21 ] 2 can only move 1 as it can't move 3 to overtake 1 [4 12 ] => [ 412 ] 4 can only move 1 as it can't move 5 to overtake 12 [ 3 ] => [ 3 ] 3 starting a new lap
Her rakam
digit_value
bitmeden tur atmak zorundadır . Parçanın son hücresi bırakıldığında bir tur tamamlanır. Bitmiş bir rakam parçadan çıkarılır.- Bir basamağın bir adımda başlangıç konumuna birden çok kez ulaşabileceğini ve birden fazla turu tamamlayabileceğini unutmayın.
Giriş
1..9
En az bir öğe ve tek bir pozitif tamsayı olan, listenin uzunluğundan, parçanın uzunluğundan daha büyük bir tek basamaklı pozitif tamsayıların ( ) listesi.
Çıktı
- Belirli bir biçimde bitirildikleri sıradaki rakamların listesi.
Örnekler
Giriş için görsel adım adım örnek starting_order = [5,9,2] and length = 6
295 | Start position
29 5| digit 5 moves
2 9 5| digit 9 moves, finishing lap #1
29 5| digit 2 moves
529 | digit 5 moves, finishing lap #1
52 9| digit 9 moves, finishing lap #2
5 29| digit 2 moves
529| digit 5 moves
9 52 | digit 9 moves, finishing laps #3 and #4
29 5 | digit 2 moves, finishing lap #1
29 5| digit 5 moves
2 9 5| digit 9 moves, finishing lap #5
29 5| digit 2 moves
529 | digit 5 moves, finishing lap #2
52 9| digit 9 moves, finishing lap #6
5 29| digit 2 moves
529| digit 5 moves
9 52 | digit 9 moves, finishing laps #7 and #8
9 5 | digit 2 moves, finishing lap #2 --> remove 2 from the track
59 | digit 5 moves, finishing lap #3
5 | digit 9 moves, finishing lap #9 --> remove 9 from the track
5| digit 5 moves
5 | digit 5 moves, finishing lap #4
| digit 5 moves, finishing lap #5 --> remove 5 from the track
------
Finish order: 2 9 5
Biçimdeki örnekler Input => Output
[3], 2 => [3]
[9, 5], 3 => [9, 5]
[5, 9, 2], 6 => [2, 9, 5]
[5, 9, 2], 10 => [5, 9, 2]
[5, 7, 8, 1, 2], 10 => [1, 5, 7, 8, 2]
[5, 1, 6, 8, 3, 2], 17 => [1, 6, 8, 2, 3, 5]
[1, 2, 3, 7, 8, 9], 15 => [1, 7, 8, 9, 2, 3]
[9, 8, 7, 3, 2, 1], 15 => [8, 7, 9, 1, 2, 3]
[1, 2, 3, 4, 5, 6, 7, 8, 9], 20 => [1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1], 20 => [8, 7, 5, 9, 6, 1, 2, 4, 3]
Bu kod golf bu yüzden en kısa giriş kazanır.