题目描述
先生が (1,2,⋯,N) の順列 P=(P1,P2,…,PN) を隠し持っています。 これから、あなたはこの順列を特定します。
そのために、あなたは整数のペアの列 $(A_1,B_1),(A_2,B_2),\ldots,(A_{N(N-1)/2},B_{N(N-1)/2})$ を用意しました。これは、(a,b) (1 ≤ a < b ≤ N) という形のすべてのペアを並べ替えたものです。 今から、あなたはこれらのペアを先頭から検査します。ペア (Ai, Bi) に対しては、PAi < PBi であるかを尋ね、先生が答えを教えます。 ただし、この質問への答えがそれ以前の答えから特定できる場合は、この質問を省略します。
このアルゴリズムで 2N(N−1) 個の質問がすべてされるような順列 P の個数を 109+7 で割った余りを求めてください。
输入格式
入力は標準入力から以下の形式で与えられる。
N A1 B1 A2 B2 ⋮ AN(N−1)/2 BN(N−1)/2
输出格式
答えを出力せよ。
题目大意
有一个 1∼n 的排列 P。
给出 2n(n−1) 组互不相同的询问 (A,B)(A=B),每次询问 (A,B) 时,都能知道 PA,PB 的大小关系。
已知对于任意的询问 (Ai,Bi),在询问前都不知道 PAi,PBi 的大小关系,求可能的排列数量对 109+7 取模的结果。
2
1 2
2
4
1 2
1 3
2 3
2 4
3 4
1 4
4
5
1 2
2 3
3 4
4 5
1 5
1 3
2 4
3 5
1 4
2 5
0
提示
制約
- 2 ≤ N ≤ 400
- 1 ≤ Ai < Bi ≤ N
- (Ai,Bi) = (Aj,Bj) (i = j)
- 入力中のすべての値は整数である。
Sample Explanation 1
明らかに、どの順列 P に対しても、質問を一つする必要があります。
Sample Explanation 2
例として、P=(2,3,1,4) を考えます。 この場合、二問目までで P1 < P2 と P1 > P3 を知って P2 > P3 と特定できるため、三問目を省略します。 従って、P=(2,3,1,4) は数えません。