printРабочее место участника

printЗадачи

2410. Завтрак

Ограничения: время – 300ms/600ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

39491.jpg
`N` домиков стоят в ряд на пляже. Каждое утро две машины развозят еду проживающим в домиках. Одна машина едет с левой стороны, другая – с правой. Когда машина подъезжает к домику, люди, проживающие в нем, выходят и забирают свой завтрак. Выдача одной порции еды занимает 1 единицу времени, переезд между соседними домиками – 5 единиц времени. Количество проживающих в домиках может различаться, поэтому, если разложить порции в машины поровну, то еда в одной из машин может закончиться раньше и проживающим нужно будет дожидаться другую машину.
Напишите программу, которая поможет определить, сколько порций нужно загрузить в каждую машину, чтобы раздача еды завершилась как можно быстрее.
Первая строка ввода содержит одно целое число `N` – количество домиков (`1\ ≤\ N\ ≤\ 10^5`). Вторая строка ввода содержит `N` целых чисел в диапазоне от 0 до `10^4` – количество проживающих в домиках слева направо.
Вывести два целых числа – количество порций, которые нужно загрузить в левую и в правую машину. Если последняя порция может быть выдана как левой, так и правой машиной без увеличения общей продолжительности раздачи еды, то её нужно погрузить в левую машину.

Пример ввода

4
1 1 7 5

Пример вывода

5 9
Пояснение к примеру:
Левая машина выдает 1 порцию еды в 1-м домике, проезжает ко 2-му домику, выдает 1 порцию еды, проезжает ко 3-му домику и выдает там 3 порции, затрачивая на все действия 1+5+1+5+3=15 единиц времени.
Правая машина выдает 5 порций еды в 4-м домике, затем проезжает ко 3-му домику и выдает там 4 порции, затрачивая на все действия 5+5+4=14 единиц времени.
Таким образом раздача еды завершается за 15 единиц времени.
loading