题目背景
有一组水平平台悬挂在不同高度。每个平台是一段水平线段,水落到某个平台上后,会把整个平台淹没,并从平台的左右端点继续竖直向下流动。
如果水在下落途中遇到更低的平台,它会继续淹没该平台;如果没有遇到任何平台,则落到地面上。
题目描述
共有 n 个平台。第 i 个平台的高度固定为 hi=i,它在水平方向上覆盖区间 [li,ri],其中 li<ri。
题目保证所有端点
l1,r1,l2,r2,…,ln,rn
恰好构成 1 到 2n 的一个排列。
小凯会按某个顺序检查这些平台。设这个顺序为一个排列:
p=(p1,p2,…,pn).
当他检查到平台 pi 时:
- 如果平台 pi 已经被之前的水流淹没,则他什么也不做;
- 如果平台 pi 还没有被淹没,则他会在该平台上倒下无限多的水,使它被淹没,并让水继续向下流动。
小凯会从全部 n! 种检查顺序中等概率随机选择一种。请你求他需要主动倒水的次数的期望值,对 109+7 取模。
输入格式
第一行包含一个正整数 n。
接下来 n 行,第 i 行包含两个正整数 li,ri,表示高度为 i 的平台覆盖区间为 [li,ri]。
输出格式
输出一行一个非负整数,表示答案对 109+7 取模后的结果。
样例 0 输入
5
2 9
3 4
1 8
6 10
5 7
样例 0 输出
233333338
附加样例
- 样例 1 见下发文件中的
ex_water1.in/out,该样例满足子任务 2 的限制。
- 样例 2 见下发文件中的
ex_water2.in/out,该样例满足子任务 8 的限制。
- 样例 3 见下发文件中的
ex_water3.in/out,该样例满足子任务 9 的限制。
数据范围与约定
对于所有测试数据,保证:
1≤n≤5×105,
并且:
li<ri,
且
{l1,r1,l2,r2,…,ln,rn}
构成 1 到 2n 的一个排列。
| 子任务 |
特殊性质 |
分值 |
| 1 |
n≤8 |
10 |
| 2 |
n≤2×103 |
| 3 |
n≤5×103 |
| 4 |
n≤5×104 |
15 |
| 5 |
n≤105 |
10 |
| 6 |
n≤2.5×105 |
| 7 |
n≤4×105 |
| 8 |
对任意满足 li<lj 的 i,j,都有 ri<lj 或 ri>rj |
15 |
| 9 |
无特殊限制 |
10 |