Biorąc pod uwagę listę zadań, które należy wykonać w kolejności, z których każda zajmuje miejsce, ile czasu zajmie wykonanie ich wszystkich, jeśli po wykonaniu zadania nie będzie można wykonać tego samego zadania dla kolejnych dwóch miejsc (ochłodzenie miejsc )? Jednak w tych gniazdach chłodzących można przypisać inne zadanie.
Na przykład,
[9,10,9,8] => output: 5
Ponieważ zadania zostaną przydzielone jako [9 10 _ 9 8].
1. Po pierwsze, 9 potrzebuje dwóch punktów ochłodzenia _ _. Więc zaczynamy od 9 _ _.
2. Następne zadanie 10 różni się od poprzedniego zadania 9, więc możemy przydzielić jedno z _ _. Wtedy będziemy mieli 9 10 _.
3. Po trzecie, nie można teraz przydzielić 9, ponieważ pierwsze zadanie 9 jest tym samym zadaniem i wymaga czasu na ostygnięcie. 9 10 _ 9.
4. Na koniec 8 nie jest tym samym, co inne poprzednie dwa zadania, więc można je przydzielić zaraz po 9, a ponieważ jest to ostatnie zadanie, nie wymaga czasu na ostygnięcie. Ostateczna lista to 9 10 _ 9 8i oczekiwany wynik to 5, czyli liczba miejsc (lub liczba miejsc)
Przypadki testowe:
[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])
Wartością wejściową może być dowolna liczba całkowita (ujemna, 0, dodatnia). Długość listy zadań wynosi 0 <= długość <= 1 000 000.
Wyjście będzie liczbą całkowitą, łączną liczbą gniazd, która jest wskazana w przypadku testowym jako wyjście. Lista w nawiasie określa sposób generowania danych wyjściowych.
Kryterium wygranej
kod-golf
[]?