QOJ.ac

QOJ

시간 제한: 1.0 s 메모리 제한: 32 MB 총점: 120

#17052. 福尔摩斯

통계

夏洛克·福尔摩斯(Sherlock Holmes)是一位著名的侦探。他在苏格兰场的同事们经常向他提供一系列证据,并请求他协助破解谜案。经过多年的实践,福尔摩斯积累了极其丰富的经验,已经掌握了许多常见事件的起因。结合他非凡的演绎推理能力,这使他能够坐在舒适的椅子上,在几分钟内解决案件。

福尔摩斯的知识库可以建模为一组形如 $A \to B$ 的蕴含关系(其中 $A$ 和 $B$ 代表事件),这意味着如果 $A$ 发生,事件 $B$ 也必然发生(请记住,只有当 $A$ 为真且 $B$ 为假时,逻辑蕴含才为假)。当然,蕴含关系可以形成推理链,例如 $A \to B \to C$。然而,蕴含关系中永远不会出现环状链(例如 $A \to B \to C \to \dots \to A$)。

福尔摩斯得到了一个已知发生事件的集合 $S = \{S_1, S_2, S_3, \dots, S_N\}$(即证据)。然后,他可以利用自己广泛的知识和演绎推理能力,找出所有必然发生的事件。

需要特别注意的是,福尔摩斯的知识量极其庞大,以至于他知道所有可能的事件起因。换句话说,不存在任何一条在现实中成立、却未包含在福尔摩斯知识库中的蕴含关系。

许多侦探机构都非常欣赏福尔摩斯这种独一无二的能力,因此你的任务是用计算机完成普通人无法企及的工作。编写一个程序,根据给定的蕴含关系和侦探同事收集的证据,找出所有必然发生的事件。

输入格式

输入的第一行包含三个整数 $D$($1 \le D \le 1000$),表示不同事件类型的数量;$M$($1 \le M \le 100000$),表示蕴含关系的条数;以及 $N$($1 \le N \le D$),表示侦探收集到的证据数量。

接下来的 $M$ 行,每行包含两个整数 $A$ 和 $B$($1 \le A, B \le D$),描述一条蕴含关系 $A \to B$。

最后的 $N$ 行,每行包含一个整数 $X$($1 \le X \le D$),描述根据侦探收集的证据,一个必然已经发生的事件。

输出格式

输出的第一行也是唯一的一行,应包含若干个整数(以任意顺序排列),表示所有必然已经发生的事件。

样例

输入 1

3 2 1
1 2
2 3
2

输出 1

1 2 3

输入 2

3 2 1
1 3
2 3
3

输出 2

3

说明 2

知识库中包含蕴含关系 $1 \to 3$ 和 $2 \to 3$。因此,福尔摩斯知道事件 3 只能由事件 1 和 2 引起,但(在没有任何额外信息的情况下)他无法确定这两个事件中究竟是哪一个实际引起了 3。因此,唯一必然发生的事件就是输入中给出的那个事件。

输入 3

4 4 1
1 2
1 3
2 4
3 4
4

输出 3

1 2 3 4

说明 3

福尔摩斯不知道集合 $\{2, 3\}$ 中的哪一个事件直接导致了事件 4。然而,由于这两个事件都只能由事件 1 引起,福尔摩斯可以推断出事件 1 必然已经发生。因此,事件 2、3 和 4(由侦探给出)也必然已经发生。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.