Dada uma lista de tarefas, que devem ser executadas em ordem, com cada uma ocupando um slot, quanto tempo levará para executá-las todas se, depois de fazer uma tarefa, a mesma tarefa não puder ser executada para os próximos dois slots (esfriando os slots )? No entanto, um trabalho diferente pode ser atribuído nesses slots de resfriamento.
Por exemplo,
[9,10,9,8] => output: 5
Porque os trabalhos serão alocados como [9 10 _ 9 8]
.
1. Primeiro, 9 precisa de dois pontos de reflexão _ _. Então começamos com 9 _ _
.
2. O próximo trabalho 10 é diferente do trabalho anterior 9, para que possamos alocar um dos _ _. Então nós teremos 9 10 _
.
3. Terceiro, 9 não pode ser alocado agora, pois o primeiro trabalho 9 é o mesmo trabalho e precisa de tempo de reflexão. 9 10 _ 9
.
4. Por último, 8 não é o mesmo que os outros dois trabalhos anteriores; portanto, pode ser alocado logo após 9 e, como esse é o último, não precisa de tempo para se refrescar. A lista final é 9 10 _ 9 8
e a saída esperada é 5, que é o número de pontos (ou número de slots)
Casos de teste:
[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])
O valor de entrada pode ser qualquer número inteiro (negativo, 0, positivo). O comprimento da lista de tarefas é 0 <= comprimento <= 1.000.000.
A saída será um número inteiro, o número total de slots, que é indicado no caso de teste como saída. A lista entre parênteses é como a saída seria gerada.
Critério vencedor
código-golfe
[]
?