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

printЗадачи

2387. Заполнение бассейна

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

Джейк должен наполнить бассейн водой из емкостей, стоящих на краю бассейна. Емкости вмещают разный объем воды и вода в них имеет разную температуру. Джейк хочет, чтобы бассейн был наполнен не менее чем наполовину, но также вода не должна вылиться из бассейна из-за переполнения. С другой стороны, Джейк хочет, чтобы температура воды в бассейне, получившаяся в результате смешивания, была как можно ближе к некоторой желательной температуре `T` и отличалась от `T` не более чем на 5 градусов. Чтобы не запутаться в вычислениях, Джейк выливает воду из только емкостей, стоящих подряд.
Напишите программу, которая поможет выбрать Джейку выбрать ряд емкостей для выливания в бассейн.
Формат ввода
Первая строка ввода содержит два целых числа — объем бассейна `V` (`100\ ≤\ V\ ≤\ 10000`) и желаемую температуру `T` (`1\ ≤\ T\ ≤\ 100`). Вторая строка ввода содержит одно число `N` (`1\ ≤\ N\ ≤\ 3000`) – количество емкостей. Далее следует `N` содержащих по два целых числа — объем емкости `v_i` (`1\ ≤\ v_i\ ≤\ 1000`) и температуру воды в ней `t_i` (`1\ ≤\ t_i\ ≤\ 100`).
Формат вывода
Вывести два целых числа — начальный и конечный номера емкостей, которые нужно вылить Джейку. Если заполнить бассейн для указанных выше ограничений невозможно, то вывести одно число `-1`. Если существует несколько вариантов, минимизирующих разницу с желательной температурой `T`, то можно вывести любой из них.

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

200 19
5
45 23
20 41
67 22
109 11
9 56

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

2 4

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

100 20
3
10 20
70 50
15 100

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

-1
Примечание к примеру 1: Суммарный объем емкостей со 2 по 4 равен 20+67+109=196, а результирующая температура будет равна (20*41+67*22+109*11)/196=17.821.
loading