Ограничения: время – 2s/4s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
На прямой задано `N` попарно различных отрезков `[a_i;\ b_i]` (`i\ =\ 1,\ 2,\ …,\ N`, `a_i\ <\ b_i`).
Будем говорить,
что отрезок номер `i` непосредственно содержится в отрезке номер `j` (`i\ ≠\ j`), если:
- он полностью принадлежит `j`-му (то есть `a_j\ ≤\ a_i` и `b_i\ ≤\ b_j`),
- среди заданных `N` отрезков не найдётся такого отрезка (с номером `k`), что `i`-й отрезок принадлежит `k`-му и `k`-й принадлежит `j`-му (здесь `i`, `j` и `k` – различные числа).
Ваша задача – для каждого из данных отрезков найти тот, в котором он непосредственно содержится,
либо сообщить, что таких нет. Если данный отрезок непосредственно содержится сразу
в нескольких – подходит любой из них.
Сначала вводится целое число `N` (`1\ ≤\ N\ ≤\ 100\ 000`). Далее идут `N` пар целых чисел `a_i,\ b_i`
(`-10^9\ ≤\ a_i\ <\ b_i\ ≤\ 10^9`).
Выведите `N` чисел. Число номер `i` должно быть равно номеру отрезка, в котором непосредственно
содержится отрезок номер `i`, либо 0 – если такого не существует.
Если существует несколько решений, выведите любое.
Пример ввода
4
2 3
0 4
1 6
0 5
Источник: Московская открытая олимпиада школьников по программированию, 2010/11 учебный год