Biorąc pod uwagę skończoną sekwencję arytmetyczną dodatnich liczb całkowitych z niektórymi terminami usuniętymi ze środka, zrekonstruuj całą sekwencję.
Zadanie
Rozważmy ciąg arytmetyczny: listę dodatnich liczb całkowitych, w których różnica między dowolnymi dwoma kolejnymi elementami jest taka sama.
2 5 8 11 14 17
Załóżmy teraz, że z sekwencji usunięto jedną lub więcej liczb całkowitych, z zastrzeżeniem następujących ograniczeń:
- Usunięte liczby całkowite będą kolejnymi warunkami sekwencji.
- Pierwsza i ostatnia liczba całkowita w sekwencji nie zostaną usunięte.
- W sekwencji pozostaną co najmniej trzy liczby całkowite.
W powyższej kolejności możliwe usunięcia obejmują:
2 5 8 14 17 (removed 11)
2 5 17 (removed 8 11 14)
2 14 17 (removed 5 8 11)
Twoje zadanie: Biorąc pod uwagę jedną z tych częściowych sekwencji, zrekonstruuj oryginalną pełną sekwencję.
Detale
Możesz założyć, że dane wejściowe są prawidłowe (ma rozwiązanie) i brakuje co najmniej jednego terminu. Wszystkie liczby w sekwencji będą dodatnimi (> 0) liczbami całkowitymi. Sekwencja może mieć dodatnią lub ujemną różnicę między warunkami (tzn. Może rosnąć lub maleć). To nie będzie stała sekwencja (np 5 5 5
.).
Twoje rozwiązanie może być pełnym programem lub funkcją . Każda z domyślnych metod wejścia i wyjścia jest akceptowalna.
Dane wejściowe i wyjściowe mogą być ciągiem (z dowolnym rozsądnym ogranicznikiem), listą ciągów lub listą liczb. Możesz reprezentować liczby w dowolnej bazie dogodnej dla twojego języka.
W zgłoszeniu należy podać wszelkie nietypowe metody / formaty We / Wy, aby inni mogli łatwiej przetestować kod.
Przypadki testowe
In: 2 5 8 14 17
Out: 2 5 8 11 14 17
In: 2 5 17
Out: 2 5 8 11 14 17
In: 2 14 17
Out: 2 5 8 11 14 17
In: 21 9 6 3
Out: 21 18 15 12 9 6 3
In: 10 9 5
Out: 10 9 8 7 6 5
In: 1 10 91 100
Out: 1 10 19 28 37 46 55 64 73 82 91 100
To jest golf golfowy ; najkrótsza odpowiedź w każdym języku wygrywa.
2 5 ... 17