#P51660. 「美团 CodeM 复赛」排列

「美团 CodeM 复赛」排列

题目描述

nn 个二维点 (ai,bi)(a_i,b_i),询问有多少种排列 pp(答案对 109+710^9+7 取模)使得执行以下伪代码后留下的点是 ii,即最后 saved=i\text{saved} = i

saved = p[1]
for x from 2 to n
    if a[p[x]] >= a[saved] and b[p[x]] >= b[saved]
        saved = p[x]

保证 aabb 分别为一个排列。

输入格式

第一行一个整数 nn,接下来 nn 行每行两个整数表示一个点。

输出格式

输出 nn 行,每行一个整数表示留下的点为 ii 的排列种数。

样例

3
1 2
2 3
3 1
0
4
2

数据范围与提示

n100000n \le 100000

1ai,bin1 \leq a_i, b_i \leq n
aiaj,bibj 1i<jna_i \neq a_j, b_i \neq b_j \ \forall 1 \leq i \lt j \leq n