Ctrl K

Тренировки перед турниром

Лёгкая
Вы участвуете в турнире и по очереди встречаетесь с n соперниками. У вас есть выносливость stamina и опыт skill. У i-го соперника два показателя: drain[i] и gain[i]. Чтобы победить i-го соперника, ваша текущая выносливость должна быть **строго больше** drain[i], а текущий опыт — **строго больше** gain[i]. После победы выносливость уменьшается на drain[i], а опыт увеличивается на gain[i]. Проиграть нельзя никому. До начала турнира можно тренироваться: каждый час тренировки добавляет 1 либо к выносливости, либо к опыту (на ваш выбор). Верните наименьшее число часов тренировок, после которого вы победите всех соперников по порядку.
Пример 1
stamina=4, skill=2, drain=[2, 3], gain=[1, 5] → 5

Чтобы пережить обе встречи, выносливость должна быть больше 2 + 3 = 5, то есть хотя бы 6: +2 часа. С опытом 2 первого соперника (1) вы побеждаете и получаете 3, но второго (5) — нет; нужно ещё 3 часа, чтобы стартовать с опытом 5, тогда после первой победы будет 6 > 5. Итого 2 + 3 = 5 часов.

Пример 2
stamina=10, skill=8, drain=[3, 4], gain=[2, 6] → 0

Выносливости 10 хватает (10 > 3, затем 7 > 4), опыта тоже (8 > 2, затем 10 > 6), тренироваться не нужно.

Ограничения
  • n = drain.length = gain.length
  • 1 ≤ n ≤ 100
  • 1 ≤ stamina, skill, drain[i], gain[i] ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКуски торта для гостей ЛёгкаяСила слабейшего в паре ЛёгкаяПосадка в ряд грядок ЛёгкаяСдача у киоска ЛёгкаяРяд по подъёмам и спадам Лёгкая
загружаем Python…
Вход
stamina=4, skill=2, drain=[2, 3], gain=[1, 5]
Ожидается
5

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 169 тестов на сервере, включая скрытые.