A21527.LIS-The Postman
省选/NOI-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
每天早上,忙碌的邮递员需要经过城市的所有街道,完成投递邮件的任务。城市内的所有道路都是单向的,并通过一些路口连接起来。两个路口 u,v 最多只有两条道路直接相连:一条 u→v,一条 v→u(也即不存在两条 u→v 的街道)。所有路口从 1 到 n 编号。
在路口 1,邮递员可以开始他的行程,或是结束他的行程。很长的一段时间里,邮递员可以随意选择他的路线,但最近新出的一条规定打乱了他的计划:每个邮递员得到了若干组路口序列,现在邮递员的路线必须满足如下要求:
- 路线必须从路口 1 开始,在路口 1 结束。
- 路线必须经过每条街道恰好一次。
- 规定的每个路口序列都必须在路线中连续出现。例如:
1 2 1
这个序列在1 2 1 3
中出现了,而在1 2 3 1
中没有出现(不是连续的)。
现在邮递员找到了你,希望你能告诉他是否存在满足上述条件的路线,如果有的话,也请告诉他一条满足要求的路线。
输入格式
输入第一行两个整数 n,m,分别为路口数和街道数。
接下来 m 行,每行两个整数 a,b,表示存在一条 a→b 的街道。保证相同的街道不会重复给出,也不会有自环。
下一行一个整数 t,代表规定的路口序列数。
接下来 t 行,每行第一个整数 k,接下来 k 个数,代表一个规定的路口序列。
输出格式
如果存在一个满足条件的路线,输出 TAK
,否则输出 NIE
。
如果答案是 TAK
的话,请在接下来每行输出一个整数,代表一个满足条件的路线。
设你输出了 m+1 个数,输出的第 i 个数为 vi,你的输出需要满足如下条件:
- v1=vm+1=1。
- ∀1≤i≤m,都存在 vi 到 vi+1 的街道。
- 城市中的每条街道恰好出现一次。
- 规定的每个路口序列都必须在路线中连续出现。
输入输出样例
输入#1
6 10 1 5 1 3 4 1 6 4 3 6 3 4 4 3 5 6 6 2 2 1 4 3 1 5 6 3 3 4 3 4 4 3 6 4 3 5 6 2
输出#1
TAK 1 3 4 3 6 4 1 5 6 2 1
说明/提示
所有数据均满足:2≤n≤5×104,1≤m≤2×105,1≤a,b≤n,a=b,0≤t≤104,2≤k≤105,∑k≤105。