Ctrl K

Очередь по записям о росте

Средняя
Перед кассой стояла очередь, но она рассыпалась. Остались записи records, по одной на человека, в произвольном порядке: records[i] = [h, k] означает, что у человека рост h и перед ним в очереди стояло ровно k людей с ростом не меньше h. Восстановите очередь: верните массив тех же записей в порядке от первого человека в очереди к последнему. Гарантируется, что такая очередь существует; она единственная.
Пример 1
records=[[3, 0], [6, 0], [3, 1], [5, 1]] → [[3, 0], [3, 1], [6, 0], [5, 1]]

В очереди [[3, 0], [3, 1], [6, 0], [5, 1]] перед вторым человеком ростом 3 стоит один не ниже его (первый, тоже 3), а перед человеком ростом 5 из тех, кто не ниже, только человек ростом 6.

Пример 2
records=[[4, 2], [4, 0], [4, 1]] → [[4, 0], [4, 1], [4, 2]]

Все одного роста, а люди того же роста тоже считаются, поэтому они выстраиваются по возрастанию второго числа.

Пример 3
records=[[7, 0]] → [[7, 0]]

Один человек — очередь из него одного.

Ограничения
  • 1 ≤ records.length ≤ 2000
  • 0 ≤ h ≤ 10⁶
  • 0 ≤ k < records.length
  • Очередь по записям гарантированно восстанавливается
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПустой прямоугольник по точкам СредняяРаздача с самой младшей карты СложнаяЛучшая пара выше планок СложнаяЧистый прямоугольник на кнопках СложнаяСколько самых длинных возрастающих Средняя
загружаем Python…
Вход
records=[[3, 0], [6, 0], [3, 1], [5, 1]]
Ожидается
[[3, 0], [3, 1], [6, 0], [5, 1]]

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