QOJ.ac

QOJ

Limite de temps : 1 s Limite de mémoire : 512 MB Points totaux : 100

#167. 现代公告网络

Statistiques

如今,现代青少年使用社交网络进行交流。

在一所高中里,有 $N$ 名学生使用一个名为 ICPC(国际大学生程序设计竞赛社区)的社交网络。这些学生中的某些对是该系统上的“好友”,可以互相发送消息。在这 $N$ 名学生中,有 $A$ 名一年级学生、 $B$ 名二年级学生和 $C$ 名三年级学生是程序设计社团的成员。注意,可能存在不属于程序设计社团的学生,因此 $A + B + C$ 可能小于 $N$。

社团内同年级的学生之间关系良好。因此,社交网络中为每个年级都设有一个聊天群组,同年级的社团成员可以通过群聊即时交流。另一方面,不同年级之间的关系并不那么紧密,整个社团或整个高中并没有统一的聊天群组。

为了向社交网络上的所有社团成员广播消息,社团管理员想出了一个方法:管理员将消息告知 $N$ 名学生中的某一人,并让他们通过聊天群组和好友关系在社交网络上传播该消息。(管理员本人在社交网络上没有账号。)由于同年级的成员可以通过该年级的聊天群组广播消息,我们可以假设如果某一年级的一名成员收到了消息,该年级的所有其他成员也会立即收到消息。因此,如果消息被告知了每个年级至少一名成员,我们就可以认为消息已经广播给了社交网络上的所有社团成员。

由于在好友之间进行交流比较麻烦,我们希望最小化好友之间的通信次数。为了将消息广播给所有社团成员,最少需要多少次好友间的通信?为了达到最少的通信次数,管理员应该首先将消息告知哪位学生?

输入格式

第一行包含四个整数 $N, A, B, C$。$N$ ($3 \le N \le 10^4$) 表示社交网络中的学生人数,$A, B$ 和 $C$ ($1 \le A, B, C \le N$ 且 $A+B+C \le N$) 分别表示一年级、二年级和三年级成员的人数。

社交网络中的每名学生都由 $1$ 到 $N$ 之间唯一的数字 ID 表示。第二行包含 $A$ 个整数 $a_1, \dots, a_A$ ($1 \le a_1, \dots, a_A \le N$),是一年级成员的 ID。第三行包含 $B$ 个整数 $b_1, \dots, b_B$ ($1 \le b_1, \dots, b_B \le N$),是二年级成员的 ID。第四行包含 $C$ 个整数 $c_1, \dots, c_C$ ($1 \le c_1, \dots, c_C \le N$),是三年级成员的 ID。你可以假设 $a_1, \dots, a_A, b_1, \dots, b_B, c_1, \dots, c_C$ 互不相同。

第五行包含一个整数 $M$ ($2 \le M \le 5 \cdot 10^5$)。$M$ 表示社交网络中好友对的数量。接下来的 $M$ 行中,第 $i$ 行包含两个整数 $x_i$ 和 $y_i$ ($1 \le x_i, y_i \le N$),表示 ID 为 $x_i$ 的学生和 ID 为 $y_i$ 的学生是好友。你可以假设 $x_i \neq y_i$ ($1 \le i \le M$),且对于 $i \neq j$ ($1 \le i, j \le M$),$(x_i = x_j \text{ 或 } y_i = y_j)$ 以及 $(x_i = y_j \text{ 或 } y_i = x_j)$ 不会同时成立。你还可以假设消息可以通过好友关系和群聊从社交网络中的任何学生传递给任何其他学生。

输出格式

输出将消息广播给所有社团成员所需的好友间最少通信次数(不包括群聊),以及为了达到该最少通信次数,管理员应该告知消息的学生 ID,两者之间用空格分隔。如果存在多名满足上述条件的学生,输出其中 ID 最小的学生。

样例

样例输入 1

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

样例输出 1

2 1

样例输入 2

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

样例输出 2

3 1

样例输入 3

8 1 2 2
5
4 6
3 8
7
1 2
2 3
3 4
5 6
6 7
7 8
2 6

样例输出 3

2 3

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.