Task 93_1. Очередь за билетами
UniLecsЗадача: За билетами в кино выстроилась очередь из N человек. Кассир продает не более 3х билетов в одни руки. Известно, что на продажу i-му человеку из очереди 1го билета кассир тратит Ai секунд, на продажу 2х билетов - Bi секунд, 3х билетов - Ci секунд.
Необходимо выяснить минимальное время, за ктр все покупатели могли бы приобрести билеты.
P.S. Билеты на "группу" людей всегда покупает только первый из группы. Также никто в целях ускорения не покупает лишних билетов (т.е. билетов, ктр никому не нужны).
Входные данные: N - кол-во покупателей в очереди, N меньше 1000.
A, B, C - массивы натуральных чисел, ктр хранят значения времени продажи одного, двух и трех билетов i-му покпателю. Значения в массиве не превышают 1000.
Вывод: минимальное время, за ктр все покупатели смогут приобрести билеты.
Пример: N = 5;
A = [5, 2, 5, 20, 20]
B = [10, 10, 5, 20, 1]
C = [15, 15, 5, 1, 1]
MinTime = 12
Реализация:
- Aleksei Kolosov, JS
https://gist.github.com/KolosovAO/5f573831fc7bbd41464cfb702b2a75d3
Test:
https://repl.it/@AlieksieiKoloso/task93-2
2. Антон, решение на Rust
https://gist.github.com/AnthonyMikh/e676d27a8ea1fb24953916579a8e4240
Test:
http://play.rust-lang.org/?gist=68d96e626886ca7333ac4b6fc7181b90&version=stable&mode=debug
3. @my_diamonds_dancing, Python
https://gist.github.com/myDianomdsDancing/cec2489ee73559c49a546b48e9588f61
4. @tvolf, PHP
https://gist.github.com/tvolf/f1b940fee312fc1a3cbd97e5f2dee72a
5. @egormasharskii, C++
https://gist.github.com/myegor/8c3ce467b67adc5fa1c97579922b8229
6. @dbond762, решение на Go
https://gist.github.com/dbond762/83b3ee9fa2f2f01c5ffd70721685c938
Test:
https://play.golang.org/p/lUn3KfCetht
7. @mikhail_01, Python
https://gist.github.com/mikhail-01/9cb98e077e4b0b9322c61c3da63b0dda
8. @LostInKadath, Python
https://gist.github.com/LostInKadath/f7ce6eaada498f572acf99cc2c7b1b42