Wprowadzenie:
W domu mamy zegar, który wybija określoną wartość o każdej godzinie, ale także wybija raz na pół godziny. Tak więc od 0:01 do 12:00 włącznie uderza w następującej kolejności:
1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12
Wyzwanie:
Podając liczbę całkowitą n
, wypisz listę przedziałów czasowych, w których suma ostrzeżeń jest równa n
. Ponadto zawsze zaczynaj co najmniej 1 minutę przed tym przedziałem czasowym i zakończ co najmniej 1 minutę po tym przedziale czasowym (i co najwyżej 29 minut).
Na przykład, jeśli dane wejściowe to n=8
, dane wyjściowe mogą być:
[00:59-03:01, 01:29-03:31, 02:59-04:01, 05:29-06:31, 06:29-07:01, 06:59-07:31, 07:59-08:01]
Dla których przedziały czasowe mają następujące sumy, wszystkie równe 8
:
[1+1+2+1+3, 1+2+1+3+1, 3+1+4, 1+6+1, 1+7, 7+1, 8]
Zasady konkursu:
- Wyjście jest elastyczne. Możesz wyprowadzać jako obiekty Time (lub Date / DateTime), znaczniki czasu, ciągi znaków (z zerami wiodącymi lub bez nich), miejsca dziesiętne z
.29
/.31
/.59
/.01
(tj.0.29-3.01
Zamiast00:29-03:01
) itd. O ile jest to jasne, przed i po terminie .
Ponadto możesz sam wybrać kwotę. We wszystkich moich przykładach używam 1 minuty, ale możesz również wybrać 5 minut, 15 minut itp. Oznacza to również, że możesz na przykład użyć.4
/.6
/.9
/.1
(tj.0.4-3.1
Zamiast00:24-03:06
). Lista jest również elastyczna. Może to być lista / kolekcja, tablica, ciąg rozdzielany separatorem, drukowanie w wierszu do STDOUT itp.
Proszę podać, jaki wybór wyjściowy dokonałeś.Uwaga: Nie wolno wyprowadzać sum przedziałów czasowych jak wyżej, jest to tylko wspomniane jako wyjaśnienie. Musisz przedstawić ramy czasowe, w tym nieco przed i po nim. - Strajki owijają się od
12:00
do00:30
. Więc jeślin=14
dwa przedziały czasowe to11:29-00:31
i11:59-01:01
. - Dane wejściowe będą w zakresie
1 <= n <= 90
, w którym 90 jest sumą wszystkich możliwych uderzeń. - Zwracane ramy czasowe mogą być w dowolnej kolejności.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Obowiązują standardowe zasadyDo odpowiedzi , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i zwracanymi typami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- W razie potrzeby dodaj również wyjaśnienie.
Przypadki testowe:
(wszystkie używają 1 minuty przed / po przedziałach czasowych i zerach wiodących)
Input: 8
Ouput:
[00:59-03:01, 01:29-03:31, 02:59-04:01, 05:29-06:31, 06:29-07:01, 06:59-07:31, 07:59-08:01]
Input: 14
Output:
[00:29-04:01, 00:59-04:31, 02:59-05:01, 04:29-06:31, 05:59-07:01, 11:29-00:31, 11:59-01:01]
Input: 90
Output:
[00:29-00:01, 00:59-00:31, 01:29-01:01, 01:59-01:31, 02:29-02:01, 02:59-02:31, 03:29-03:01, 03:59-03:31, 04:29-04:01, 04:59-04:31, 05:29-05:01, 05:59-05:31, 06:29-06:01, 06:59-06:31, 07:29-07:01, 07:59-07:31, 08:29-08:01, 08:59-08:31, 09:29-09:01, 09:59-09:31, 10:29-10:01, 10:59-10:31, 11:29-11:01, 11:59-11:31]
Input: 1
Output:
[00:29-00:31, 00:59-01:01, 01:29-01:31, 02:29-02:31, 03:29-03:31, 04:29-04:31, 05:29-05:31, 06:29-06:31, 07:29-07:31, 08:29-08:31, 09:29-09:31, 10:29-10:31, 11:29-11:31]
Input: 2
Output:
[00:29-01:01, 00:59-01:31, 01:59-02:01]
.4
/ .6
/ .9
/ .1
jest dozwolone (jest to 6 minut, jak powiedziałeś: :24
/ :36
/ :54
/ :06
).