Octoplex's blog

By Octoplex, 4 weeks ago, In Russian

Не видел нигде данную задачу, придумал сам, но думаю я точно не первый её автор. Если знаете, где её можно слать, буду признателен за ссылку в комментариях.

Условие задачи:

Даны $$$n$$$ различных отрезков, каждый задан парой чисел: $$$l_i, r_i$$$. Его левая и правая граница соответственно.
Отрезок $$$j$$$ вложен в отрезок $$$i$$$, если $$$l_i \leq l_j$$$ и $$$r_j \leq r_i$$$. Для каждого отрезка в порядке ввода нужно вывести, сколько отрезков в него вложено.

Формат ввода:

На первой строке содержится единственное натуральное число $$$n(1 \leq n \leq 2 \cdot 10^5)$$$ — количество отрезков. В каждой из последующих $$$n$$$ строк содержится 2 числа $$$l_i$$$ и $$$r_i$$$, границы $$$i$$$-го отрезка.

Формат вывода:

Выведите $$$n$$$ чисел, каждое в своей строке, $$$i$$$-е число должно быть равно количеству отрезков.

Пример:
Входные данные:
6
1 10
6 6
2 2
2 6
5 8
6 7
Выходные данные:
5
0
0
2
2
1

Мое решение под спойлером.

Спойлер

Мой код с комментариями, которые частично пересекаются с решением.

Спойлер

Что я хочу узнать

Спойлер

В процессе перевода поста на английский, это пока тяжело даётся для меня, чтобы сохранить качество.

Буду также рад критике:

Что можно было бы улучшить в оформлении поста? Как бы вы поменяли мой код, чтобы он был более элегантным/производительным? Как можно было бы лучше написать решение задачи(текстовое)? Или же как можно было бы лучше оформить условие? Нахожусь в процессе развития качества постов, буду благодарен любой помощи.

  • Vote: I like it
  • +6
  • Vote: I do not like it