Недавно мне сказали прочитать весь учебник по физике к новому году (к сожалению, правдивая история). Мне нужна ваша помощь, чтобы определить, какие главы я должен читать каждый день. Это где вы входите.
вход
- Две даты в любом формате. Второе свидание всегда будет позже первого.
- Список номеров глав. Этот разделенный запятыми список может содержать отдельные главы (
12
) или включающие диапазоны (1-3
). Ex.1-3,5,6,10-13
, - Список дней недели (представлен двумя первыми буквами имени
Monday -> Mo
:) для исключения из расписания. Ex.Mo,Tu,Fr
,
Выход
Выводом будет разделенный новой строкой список дат и номеров глав (см. Формат ниже). Главы должны быть равномерно распределены по всем дням в диапазоне, за исключением предусмотренных дней недели. Если главы не распределяются равномерно, в конце периода времени укажите дни с меньшим количеством глав. Даты в выходных данных могут быть в другом формате, чем входные. Дни без глав могут быть опущены или просто не содержат глав.
Пример:
Входные данные: 9/17/2015 9/27/2015 1-15 Tu
Выход:
9/17/2015: 1 2
9/18/2015: 3 4
9/19/2015: 5 6
9/20/2015: 7 8
9/21/2015: 9 10
9/23/2015: 11
9/24/2015: 12
9/25/2015: 13
9/26/2015: 14
9/27/2015: 15
Ответы:
PowerShell v4,
367357323313308307305277 байтРедактировать - обработать 28 байтов, используя явное форматирование ввода.
Разъяснение:
использование
Ожидается, что даты будут в
DateTime
формате .NET . Ожидает, что «пропущенные» дни будут в массиве (эквивалент PowerShell для списка).источник
$
... Это на самом деле довольно среднее значение для гольфов PowerShell, которое, кажется, составляет от 10% до 15% (на основе моих собственных неофициальных подсчетов ответов, которые я выложил).JavaScript (ES6),
317310291 байтиспользование
объяснение
источник
Питон 2 -
338317308304300Здесь мы идем, чтобы получить мяч катится ...
Пример ввода:
Пример вывода:
источник