Визначте найзайнятіший час


9

Цей виклик був надзвичайно натхненний публікацією про переповнення стека .

Виклик

З огляду на купу клієнтів з точки зору того, коли вони входять до кімнати та коли вони виходять з неї, визначте період (и) часу, коли в кімнаті знаходиться максимальна кількість людей. Розподіл часу має бути хвилиновим.

Наприклад, якщо є три клієнта 8 - 10, 9 - 11, 10 - 12, то правильна відповідь буде 9 - 11; за цей час в кімнаті є два клієнта, що є найбільшим можливим.

Вхідні дані

Введенням буде список пар у якійсь формі. Це може бути або список з двох кортежів, список парної довжини з переплетеними елементами тощо, будь-який розумний формат введення. Час може бути заданий у будь-якому розумному форматі, або 12- або 24-годинний час. Ви також можете вводити час як кількість хвилин за півночі.

Вихідні дані

Вихід повинен бути списком пар у якійсь формі, але вихід суворіший. Вихід не може бути плоским списком, він повинен бути списком з 2-х кортежів або списком списків і т. Д. Часи можна виводити в будь-якому розумному форматі, або 12-, або 24-годинний час. Ви також можете виводити час як кількість хвилин за півночі.

Приклади

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

Ви можете припустити, що другий раз у парі завжди буде після першого разу. Часові діапазони не працюватимуть протягом півночі.


Що робити, якщо існує кілька часових діапазонів?
Esolanging Fruit

@ Challenger5 Що ви маєте на увазі під кількома часовими діапазонами, входом або виходом?
HyperNeutrino

@HyperNeutrino Вихід.
Esolanging Fruit

@ Challenger5 Додано тестовий випадок, дякую.
HyperNeutrino

Чи 09:00 - 10:00, 10:00 - 11:00дійсний вихід для першого тестового випадку?
Leaky Nun

Відповіді:


4

Брахілог , 25 байт

⟦₂ᵐkᵐcoḅlᵒlᵍthᵐ~c{~k~⟦₂}ᵐ

Спробуйте в Інтернеті!

У цій відповіді є очевидна структура, яка стає ще більш очевидною, якщо ви пишете її так:

{⟦₂k}ᵐc oḅ lᵒlᵍ thᵐ ~c{~k~⟦₂}ᵐ

На жаль, порядок оцінки Брахілога робить це таким чином, що програма переходить у нескінченний цикл, якщо ви спробуєте скористатися цією структурою. І все-таки, безумовно, можна уявити мову, схожу на брахілог, якою це набагато коротше.





0

Математика, 104 байти

Reduce[#==#~MaxValue~x,x]&@PiecewiseExpand@Tr[Piecewise@{{1,#<=x<#2}}&@@@#]/.{Or->List,a_<=x<b_->{a,b}}&

Звичайно, це передбачає, що кілька вбудованих систем Mathematica є потужними ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.