W zeszłym miesiącu pożyczyłem dużo książek z biblioteki. Wszystkie były dobre książki, pełne emocji i zwrotów akcji. Niestety w niektórych momentach byłem bardzo zły / smutny / rozczarowany, więc wyrwałem kilka stron.
Teraz biblioteka chce wiedzieć, ile stron rozerwałem na każdą książkę.
Twoim celem jest napisanie programu, który pobiera posortowaną listę liczb rozdzielanych przecinkami jako dane wejściowe i drukuje minimalną i maksymalną możliwą liczbę stron, które mogłem oderwać. Każda linia reprezentuje książkę, każda liczba oznacza brakującą stronę z książki.
Przykładowe dane wejściowe:
7,8,100,101,222,223
2,3,88,89,90,103,177
2,3,6,7,10,11
1
1,2
Przykładowe dane wyjściowe:
4/5
5/6
3/6
1/1
1/2
4/5
oznacza, że mogłem oderwać 4 lub 5 stron, w zależności od strony, od której zaczyna się numeracja stron książki. Można było oderwać stronę 6/7, stronę 8/9, stronę 100/101 i stronę 222/223 (4 strony). Alternatywnie można oderwać strony 7/8, strony 99/100, strony 101/102, strony 221/222 i strony 223/224 (5 stron).
Pamiętaj, że strona książki ma zawsze przód i tył. Również numeracja stron różni się w zależności od książki. Niektóre książki mają nawet numery stron na lewej stronie; niektóre po prawej stronie. Wszystkie książki są czytane od lewej do prawej.
Najkrótszy kod w bajtach wygrywa. Ścisły format we / wy nie jest wymagany. Twoje programy muszą mieć możliwość pobrania jednej lub więcej książek jako danych wejściowych. Baw się dobrze.
min/max
lub wszystkie max/min
. (Chociaż osobiście wolałbym, żeby to nie było częścią specyfikacji!)
programs must be able to take one or more books as input
rządzenia? Większość (jeśli nie wszystkie) po prostu zawinie kod, aby zweryfikować pojedynczą książkę w pętli lub coś takiego. IMHO po prostu dodaje narzut do odpowiedzi, przy niewielkim lub zerowym zwiększeniu wyzwania. Na te pytania otrzymano już wiele odpowiedzi, więc lepiej jest zachować taką, jaka jest, ale pamiętaj o tym w przyszłych wyzwaniach.
1,3,5,7,9,11,13,15,17,18
- na korzyść języków, których wbudowana sort
metoda domyślnie sortuje leksykograficznie (zakładając, że do specyfikacji dodawane jest wymaganie konsekwentnego sortowania wyników ).
4/5
i5/4
)