Шаг с наибольшим ростом потерь
Условие
При обучении модели ранжирования книг для библиотечного каталога после некоторых шагов сохраняется значение функции потерь. Меньшее значение означает, что модель точнее предсказывает, какую книгу выдадут читателю.
В журнале каждому измерению соответствуют номер шага обучения s и целое число q. Число q равно значению потерь, умноженному на 1000. Все значения уже записаны в таком виде, поэтому вычисления с вещественными числами не требуются.
Для каждой строки, кроме первой, определяется изменение потерь: d_i = q_i - q_(i-1). Требуется найти шаг s_i, для которого d_i максимально и строго положительно. Если положительных изменений нет, необходимо вывести шаг 0.
Если наибольший положительный рост достигается на нескольких шагах, выводится шаг, который раньше расположен во входных данных.
Формат ввода
В первой строке дано целое число n — количество записей журнала.
В следующих n строках даны два целых числа: s_i и q_i — номер шага обучения и значение потерь, умноженное на 1000.
Формат вывода
Выведите два значения через пробел: слово STEP и номер найденного шага. Если потери ни разу не выросли, выведите STEP 0.
Округление не выполняется: все сравнения и вывод номера шага производятся как целые числа.
Ограничения
1 ≤ n ≤ 4000.
1 ≤ s_i ≤ 10^9.
Номера шагов строго возрастают в порядке входных данных.
0 ≤ q_i ≤ 10^9.
Пропусков в журнале нет: каждая из n строк содержит оба целых значения.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается