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

printЗадачи

740. ИБП

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

В школьной компьютерной сети много источников бесперебойного питания (ИБП), которые должны обеспечить работу компьютеров в случае отключения питания. Поэтому Олегу Петровичу важно знать в каком из ИБП уровень заряда оказался ниже критического. ИБП время от времени сообщают о своем уровне заряда на центральный компьютер. Показания уровня заряда могут меняться из-за ошибок измерения, а также подзарядки или разрядки батарей ИБП.
Напишите программу, которая обрабатывает поступившую информацию от ИБП об уровне их заряда и выводит номер ИБП, у которого `M` последних показаний уровня заряда оказались меньше или равны критического уровня. Если таких ИБП несколько, то вывести номер того из них, у которого сумма последних `M` показаний меньше. Если таких ИБП все равно несколько, то вывести ИБП с меньшим номером.
В первой строке входного файла содержится четыре целых числа `N`, `L`, `M` и `K`, разделенных пробелами – количество ИБП `N` (`1\ ≤\ N\ ≤\ 100`), величина критического уровня заряда `L` (`1\ ≤\ L\ <\ 100`), количество рассматриваемых последних показаний `M` (`1\ ≤\ M\ ≤\ 100`) и количество поступивших показаний от ИБП `K` (`1\ ≤\ K\ ≤\ 100000`). Далее следует `K` строк, в каждой строке два целых числа, разделенных пробелом – показания от ИБП в порядке поступления, сначала указывается номер ИБП от 1 до `N`, затем уровень заряда в нем от 0 до 100.
В выходной файл вывести `K` строк, в каждой строке одно целое число – номер ИБП, который нужно высветить после поступления `i`-го показания, или 0, если заряд ни одного ИБП не достиг критического уровня.

Пример ввода

2 10 3 12
1 16
1 12
2 15
1 9
1 11
2 7
1 10
1 7
2 10
1 8
2 7
2 8

Вывод для примера

0
0
0
0
0
0
0
0
0
1
2
1
loading