Олимпиадный тренинг

Задача . E. Культурный код


В магазине неподалеку продаются известные русские деревянные игрушки под названием «матрешки», и вы бы хотели приобрести несколько штук. В магазине продается \(n\) различных матрешек. Любая матрешка — это фигурка объема \(out_i\) с пустотой внутри объемом \(in_i\) (конечно, \(out_i > in_i\)).

У вас не так много свободного места в сумке, но, к счастью, вы знаете, что матрешки можно вкладывать друг в друга. Формально, назовем набор матрешек вкладываемым, если мы можем переупорядочить их таким образом, что первая матрешка вкладывается во вторую, вторая — в третью и так далее. Матрешка \(i\) вкладывается в матрешку \(j\), если \(out_i \le in_j\). Только последняя игрушка из вкладываемого набора будет занимать место в вашей сумке.

Назовем пустотой вкладываемого набора общий объем пустого места внутри данной структуры. Очевидно, что она равна \(in_{i_1} + (in_{i_2} - out_{i_1}) + (in_{i_3} - out_{i_2}) + \dots + (in_{i_k} - out_{i_{k-1}})\), где \(i_1\), \(i_2\), ..., \(i_k\) — индексы выбранных матрешек в порядке их вкладывания.

Наконец, назовем вкладываемый поднабор заданного набора достаточно большим, если в него нельзя добавить ни одной матрешки из набора так, чтобы не нарушить его вкладываемость.

Вы хотели бы купить много матрешек, а потому выбираете достаточно большой вкладываемый поднабор. Но автора задачи сильно расстроит, если в вашей сумке будет потрачено зря слишком много места, поэтому вы выбираете достаточно большой вкладываемый поднабор, пустота которого минимально возможная среди всех достаточно больших поднаборов. И вот возник вопрос: как много различных поднаборов удовлетворяют всем требованиям (поднаборы достаточно большие, и нет другого достаточно большого поднабора с пустотой меньше заданного). Два поднабора считаются различными, если существует хотя бы один индекс \(i\) такой, что один поднабор содержит \(i\)-ю матрешку, а другой — нет.

Так как ответ может быть очень большим — выведите его по модулю \(10^9 + 7\).

Входные данные

В первой строке содержится одно целое число \(n\) (\(1 \le n \le 2 \cdot 10^5\)) — количество матрешек.

Следующие \(n\) строк содержат описание каждой матрешки: два целых числа \(out_i\) и \(in_i\) (\(1 \le in_i < out_i \le 10^9\)) — внешний и внутренний объемы \(i\)-й матрёшки.

Выходные данные

Выведите единственное число — количество достаточно больших вкладываемых поднаборов таких, что пустота каждого такого поднабора минимально возможная. Так как ответ может быть очень большим, выведите его по модулю \(10^9 + 7\).

Примечание

В первом примере есть ровно \(6\) достаточно больших вкладываемых поднаборов с минимальной пустотой:

  • \(\{1, 5\}\): мы не можем добавить в него другие матрешки, не нарушая вкладываемость; пустота поднабора равна \(1\);
  • \(\{1, 6\}\);
  • \(\{2, 4, 5\}\);
  • \(\{2, 4, 6\}\);
  • \(\{3, 4, 5\}\);
  • \(\{3, 4, 6\}\).

Других «хороших» поднаборов нет, потому что, например, поднабор \(\{6, 7\}\) не достаточно большой (в него можно добавить \(4\)-ю матрешку), а поднабор \(\{4, 6, 7\}\) имеет пустоту, равную \(2\).


Примеры
Входные данныеВыходные данные
1 7
4 1
4 2
4 2
2 1
5 4
6 4
3 2
6

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя