Inspiracją dla tego kodu golfowego układanki jest problemem Bridge i latarki , w którym d ludzie na początku mostu wszystko musi przejechać ją w jak najkrótszym czasie.
Chodzi o to, że najwyżej dwie osoby mogą przejść jednocześnie, w przeciwnym razie most zmiażdży się pod ich ciężarem, a grupa ma dostęp tylko do jednej pochodni, którą należy zabrać, aby przejść przez most.
Każda osoba w całej układance ma określony czas na przejście przez most. Jeśli dwie osoby krzyżują się razem, para idzie tak wolno, jak najwolniejsza osoba.
Nie ma określonej liczby osób, które muszą przejść przez most; twoje rozwiązanie MUSI działać dla dowolnej wartości d .
Nie musisz używać standardowych danych wejściowych dla tego problemu, ale dla wyjaśnienia problemu użyję następującego formatu danych wejściowych i wyjściowych dla wyjaśnienia. Pierwsza liczba, d , to liczba osób na początku mostu. Następnie kod będzie skanował w poszukiwaniu cyfr d , z których każda reprezentuje prędkość osoby.
Wyjściowym kodem będzie NAJMNIEJ czas wymagany do przejścia wszystkich od początku mostu do końca mostu, przy jednoczesnym spełnieniu kryteriów wyjaśnionych wcześniej.
Oto niektóre przypadki wejściowe i wyjściowe oraz wyjaśnienie pierwszego przypadku wejściowego. Wyodrębnienie algorytmu na podstawie tych informacji zależy od rozwiązania problemu w jak najmniejszej liczbie bajtów kodu.
Wejście
4
1 2 5 8
wynik
15
Aby osiągnąć ten wynik, ludzie muszą przejść w następujący sposób.
A and B cross forward (2 minutes)
A returns (1 minute)
C and D cross forward (8 minutes)
B returns (2 minutes)
A and B cross forward (2 minutes)
Oto kolejny przypadek testowy, który poprowadzi Cię po drodze.
Wejście
5
3 1 6 8 12
wynik
29
Zasady:
- Załóż, że dane wejściowe nie zostaną posortowane i musisz to zrobić samodzielnie (w razie potrzeby)
- Liczba osób w układance nie jest ustalona na 4 (N> = 1)
- Każda grupa i indywidualne przejście musi mieć pochodnię. Jest tylko jedna pochodnia.
- Każda grupa musi składać się maksymalnie z 2 osób!
- Nie, nie możesz zeskoczyć z mostu i przepłynąć na drugą stronę. Żadnych innych takich sztuczek;).
1 4 5 6 7ma podobny problem. 25 vs. 26
N >= 2ludzi (co dziwne, że to dodatkowa praca, aby poradzić sobie z trywialnym przypadkiem „jedna osoba musi przejść”), więc wyjaśnienie tej kwestii byłoby świetne. Z góry dziękuję.
1 3 4 5, które powinny zwrócić 14, a nie 15.