Ctrl K

Король стола

Средняя
В клубе настольного тенниса играют на вылет. Игроки пронумерованы от 0 до n - 1, рейтинг игрока i — ratings[i], все рейтинги различны. Сначала игроки стоят в очереди по порядку номеров. Два первых игрока в очереди играют партию, побеждает тот, у кого рейтинг выше. Победитель остаётся первым в очереди, проигравший уходит в её конец. Затем всё повторяется. Чемпионом становится первый игрок, выигравший streak партий подряд. Верните его номер.
Пример 1
ratings=[3, 8, 5, 1, 9], streak=3 → 1

Игрок 1 (рейтинг 8) обыгрывает игрока 0, затем игроков 2 и 3 — это три победы подряд. До игрока 4 очередь не дошла.

Пример 2
ratings=[7, 2, 4], streak=1 → 0

Хватит одной победы: игрок 0 сразу выигрывает первую партию.

Пример 3
ratings=[4, 6, 2], streak=1000 → 1

Серия длиннее числа соперников: в итоге стол займёт самый сильный, игрок 1, и уже не уступит его.

Ограничения
  • 2 ≤ len(ratings) ≤ 10⁵
  • 1 ≤ streak ≤ 10⁹
  • 1 ≤ ratings[i] ≤ 10⁶
  • Все значения в ratings различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧтение по спирали СредняяКвадрат, пронумерованный по спирали СредняяСледующий шаг колонии клеток СредняяЗигзаг по диагоналям СредняяТри в ряд до упора Средняя
загружаем Python…
Вход
ratings=[3, 8, 5, 1, 9], streak=3
Ожидается
1

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