Bạn nên viết một chương trình hoặc hàm có thứ tự bắt đầu gồm các số nguyên dương một chữ số riêng biệt và độ dài của bản nhạc làm đầu ra đầu vào hoặc trả về thứ tự kết thúc của các số.
Đầu vào [5,1,2,6,7] and 14
xác định cuộc đua sau:
--------------
76215 ->
--------------
Quy tắc của cuộc đua
- Theo dõi kết thúc tốt đẹp và chữ số có thể đi nhiều vòng.
- Thứ tự các bước là tuần hoàn và dựa trên vị trí bắt đầu. Trong ví dụ của chúng tôi
5 1 2 6 7 5 1 2 ...
. - Không thể có nhiều chữ số trong cùng một vị trí.
Mỗi chữ số có tốc độ
digit_value
di động trên mỗi bước. Vượt qua một chữ số hoặc một khối chữ số liên tục tốn thêm một bước. Nếu chữ số không có tốc độ cần thiết thì nó sẽ dừng trước (khối) chữ số. Ví dụ:[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
Mỗi chữ số phải đi
digit_value
vòng trước khi nó kết thúc. Một vòng đua được hoàn thành khi ô cuối cùng của bản nhạc được để lại. Một chữ số hoàn thành được loại bỏ khỏi đường đua.- Lưu ý rằng một chữ số có thể đạt đến vị trí bắt đầu của nó nhiều lần qua một bước và hoàn thành nhiều vòng.
Đầu vào
- Danh sách các số nguyên dương một chữ số riêng biệt (
1..9
) có ít nhất một phần tử và một số nguyên dương duy nhất, lớn hơn độ dài của danh sách, độ dài của bản nhạc.
Đầu ra
- Một danh sách các chữ số theo thứ tự chúng đã hoàn thành ở bất kỳ định dạng rõ ràng nào.
Ví dụ
Một ví dụ trực quan từng bước cho đầu vào 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
Ví dụ ở định dạng 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]
Đây là môn đánh gôn nên bài dự thi ngắn nhất sẽ thắng.