Учитывая список заданий, которые должны быть выполнены по порядку, каждый из которых занимает слот, сколько времени потребуется для их выполнения, если после выполнения задания одно и то же задание не может быть выполнено для следующих двух слотов (охлаждение слотов) )? Однако в этих слотах охлаждения можно назначить другую работу.
Например,
[9,10,9,8] => output: 5
Потому что рабочие места будут выделяться как [9 10 _ 9 8]
.
1. Во-первых, 9 нуждается в двух охлаждающих точках _ _. Итак, начнем с 9 _ _
.
2. Следующее задание 10 отличается от предыдущего задания 9, поэтому мы можем выделить одно из _ _. Тогда мы будем иметь 9 10 _
.
3. В-третьих, сейчас нельзя выделить 9, поскольку первое задание 9 - это то же самое задание, и оно требует времени охлаждения. 9 10 _ 9
,
4. Последнее, 8 не то же самое, что и любые другие предыдущие два задания, поэтому его можно распределить сразу после 9, и, поскольку это последнее задание, ему не нужно время для охлаждения. Окончательный список 9 10 _ 9 8
и ожидаемый результат равен 5, что является количеством мест (или количеством слотов)
Тестовые случаи:
[1,2,3,4,5,6,7,8,9,10] => output : 10 ([1 2 3 4 5 6 7 8 9 10])
[1,1,1] => output: 7 ([1 _ _ 1 _ _ 1])
[3,4,4,3] => output: 6 ([3 4 _ _ 4 3])
[3,4,5,3] => output: 4 ([3 4 5 3])
[3,4,3,4] => output : 5 ([3 4 _ 3 4])
[3,3,4,4] => output : 8 ([3 _ _ 3 4 _ _ 4])
[3,3,4,3] => output : 7 ([3 _ _ 3 4 _ 3])
[3,2,1,3,-4] => output : 5 ([3 2 1 3 -4])
[] => output : 0 ([])
[-1,-1] => output : 4 ([-1 _ _ -1])
Входное значение может быть любым целым числом (отрицательное, 0, положительное). Длина списка заданий составляет 0 <= длина <= 1 000 000.
Выходными данными будет целое число, общее количество слотов, которое указывается в тестовом примере как выходной. Список в скобках показывает, как будет сгенерирован вывод.
Критерий победы
код-гольф
[]
?