#arc0303. [arc030_3]有向グラフ
[arc030_3]有向グラフ
问题描述
给定一个由 个顶点和 条边组成的有向图。 个顶点用从 到 不同的整数进行编号。每个顶点上都有一个小写字母 a
到 z
。
你想要从任意一个顶点开始,以任意顺序访问每个顶点,从而收集恰好 个字母。可以多次访问同一个顶点,并在任何时刻收集该顶点上的字母,但每个字母只能收集一次。如果不需要,则无需收集。
为了避免过于无聊的收集方式,你决定按照回收这些 个字母的顺序,使其按字典序最小的方式进行收集。
请输出按照这样的回收方法,以收集顺序输出的 个字母。如果无法找到收集 个字母的方法,请输出 -1
。
输入
输入通过标准输入给出,具体格式如下:
… :
- 第 行为 、 和 ,分别表示顶点数 、边数 和要收集的字母数 。
- 第 行为 个小写字母 (
a
到z
),表示每个顶点上的字母,以空格分隔。 - 第 行到第 行,给出 条边,每行两个整数 和 ,表示第 条边由顶点 连接到顶点 。
输入图中无自环和重复边,但可能存在反向边。同时,无法保证图是连通的。
输出
输出按照回收顺序,使得字典序最小的 个字母,每个字母之间没有空格。如果无法找到收集 个字母的方法,请输出 -1
。记得输出换行符。
示例1
4 4 3
a b b a
1 2
2 3
3 1
4 3
输出样例1
aab
对应的图示如下。通过移动顶点 → → → ,我们可以按顺序收集顶点 上的字母 a
、顶点 上的字母 a
,以及顶点 上的字母 b
,这样的收集顺序是字典序最小的答案。
示例2
5 4 4
d a b c a
1 2
2 3
3 4
2 5
输出样例2
dabc
示例3
5 4 3
d a b c a
1 2
2 3
3 4
2 5
输出样例3
abc
示例4
3 0 2
a b c
输出样例4
-1
有三个孤立的顶点,并且无论从哪个顶点开始,都无法收集到恰好 个字母。