题目描述
顺序是数学和计算机科学中的一个重要概念。举例来说, 佐恩引理指出:“一个偏序集如果满足其中每一条链都有上界,那么这个偏序集中必然存在一个最大元素。”
顺序在推理程序的不动点语义时也至关重要。
这个问题既不涉及佐恩引理, 也不包括固定点语义, 而是涉及顺序。
给定一个形式为 x<y 的变量约束列表,你要编写一个程序来打印所有与约束一致的顺序。
例如,给定约束 x<y 和 x<z,变量 x,y,z 有两种顺序: xyz 和 xzy。
输入格式
输入包含一系列约束规范。一个规范包含两行:一行是变量列表,下一行是约束列表。一个约束由一对变量给出,x y 表示 x<y 。
所有变量都是单字符小写字母。每个规范至少有两个变量,不超过 20 个变量。每个规范至少有一个约束,不超过 50 个约束。在每个规范的约束下,至少有一个,不超过 300 个顺序。
输入终止于 EOF。
输出格式
对于每一个约束规范,应打印所有与约束一致的顺序。顺序按字典序(字母顺序)打印,每行一个。
不同约束规范的输出以空行分隔。
样例输入
a b f g
a b b f
v w x y z
v y x v z v w v
样例输出
abfg
abgf
agbf
gabf
wxzvy
wzxvy
xwzvy
xzwvy
zwxvy
zxwvy
提示
和大多数 OJ 不同,UVA RemoteJudge 比较答案文件时不过滤行末空格和文末回车,否则会报
Wrong Answer.Presentation error