To wyzwanie było bardzo zainspirowane postem przepełnienia stosu .
Wyzwanie
Biorąc pod uwagę grupę klientów pod względem czasu, gdy wchodzą do pokoju i kiedy z niego wychodzą, określ okres (y) czasu, w którym pokój ma maksymalną liczbę osób. Rozdzielczość czasowa powinna być z dokładnością do minuty.
Na przykład, jeśli istnieją trzy klienci 8 - 10
, 9 - 11
, 10 - 12
, to prawidłowa odpowiedź będzie 9 - 11
; w tym czasie w pokoju jest dwóch klientów, co jest największym możliwym.
Wejście
Dane wejściowe będą listą par w jakiejś formie. Może to być albo lista 2-krotek, lista o parzystej długości z przeplatanymi elementami itp., Dowolny rozsądny format wejściowy. Czasy można podać w dowolnym rozsądnym formacie, w czasie 12 lub 24 godzinnym. Możesz także wprowadzić czas jako liczbę minut po północy.
Wynik
Dane wyjściowe powinny być listą par w jakiejś formie, ale wynik jest bardziej rygorystyczny. Wynik nie może być płaską listą, musi to być lista 2-krotek lub lista list itp. Czasy mogą być generowane w dowolnym rozsądnym formacie, w czasie 12- lub 24-godzinnym. Możesz także podać czas jako liczbę minut po północy.
Przykłady
input
output
INPUT
08:00 - 10:00
09:00 - 11:00
10:00 - 12:00
OUTPUT
09:00 - 11:00
INPUT
08:20 - 09:20
09:00 - 09:10
08:00 - 09:30
08:50 - 10:40
OUTPUT
09:00 - 09:10
INPUT
08:00 - 10:00
09:00 - 10:00
09:30 - 11:00
OUTPUT
09:30 - 10:00 # The output is not always in the input list
INPUT
00:00 - 02:00
01:00 - 03:00
04:00 - 06:00
05:00 - 07:00
OUTPUT # This is the expected output for when there are multiple time ranges with the same "business".
01:00 - 02:00
05:00 - 06:00
Możesz założyć, że drugi raz w parze zawsze będzie po raz pierwszy. Przedziały czasowe nie będą biegać do północy.
09:00 - 10:00, 10:00 - 11:00
jest poprawny wynik dla pierwszego przypadku testowego?