Условие
Задача "Троллейбусы"
Троллейбусы одного маршрута проходят через остановку
каждые k (1<=k<=500) минут. Известны времена прихода пассажиров
на эту остановку. Если пассажир приходит на остановку в
момент прихода троллейбуса, то он успевает уехать на нем.
Напишите программу, которая бы определяла, во сколько должен пройти
первый троллейбус (это время от 0 до k-1), чтобы:
1) Суммарное время ожидания троллейбуса для всех пассажиров было минимально.
2) Максимальное из времен ожидания троллейбуса было минимально.
Входные данные
Во входном файле INPUT.TXT записано сначала число k, затем - число N
(0<=N<=100000). Затем идет N чисел, задающих времена прихода пассажиров
на остановку. Каждое из этих чисел - целое от 0 до 100000.
Выходные данные
В выходной файл OUTPUT.TXT запишите два числа,
являющиеся ответами на первый и второй вопросы задачи соответственно.
Если решений несколько, выведите любое из них.
Пример файла INPUT.TXT
100 5
0 210 99 551 99
Пример файла OUTPUT.TXT
10
51
Подсказка
Задача с Кировской областной олимпиады. Задача
очень непростая. Идея заключается в том, что времена прихода людей на
остановку нас интересуют только по модулю k. Нужно посчитать, сколько
человек приходит на остановку в каждый (по mod k) момент времени, а затем
перебрать и найти оптимальное время для троллейбуса.
Решение
Скачать архив тестов
Источники и прецеденты использования
|
Курс |
предмет |
информатика |
Название |
Основы программирования на языке Паскаль |
Класс |
8 |
Автор |
Матюхин Виктор Александрович |
Место проведения |
Московская гимназия на Юго-Западе N1543 |
задача |
Номер |
132 |