3756: 队伍统计

内存限制:512 MB 时间限制:4.000 S
评测方式:文本比较 命题人:
提交:12 解决:4

题目描述

现在有n个人要排成一列,编号为1 → n。但由于一些不明原因的关系,人与人之间可能存在一些矛盾关系,具体有k条矛盾关系(u, v),表示编号为u的人想要排在编号为v的人前面。要使得队伍和谐,最多不能违背k条矛盾关系(即不能有超过k条矛盾关系(u, v),满足最后u排在了v前面)。问有多少合法的排列。答案对10^9 + 7取模。 

输入

第一行包括三个整数n,m,k。

接下来m行,每行两个整数u, v,描述一个矛盾关系(u, v)。保证不存在两对矛盾关系(u, v), (x ,y),使得u =x且v=y。

输出

输出包括一行表示合法的排列数。

样例输入 复制

count1.in
4 2 1
1 3
4 2

count2.in
10 12 3
2 6
6 10
1 7
4 1
6 1
2 4
7 6
1 4
10 4
10 9
5 9
8 10

样例输出 复制

count1.out
18

count2.out
123120

提示

对于30%的数据,n ≤ 10

对于60%的数据,n ≤ 15

对应100%的数据,n, k ≤ 20, m ≤ n×(n − 1),保证矛盾关系不重复。