#icpc2015autumnf. [icpc2015autumn_f]Modern Announce Network
[icpc2015autumn_f]Modern Announce Network
问题描述
今天,现代的青少年们使用社交网络服务(SNS)来进行交流。
在一所高中里,有 名学生使用一款名为ICPC(国际编程竞赛社区)的SNS。这 名学生中,有 个一年级学生、 个二年级学生和 个三年级学生是编程社团的成员。请注意,可能会有一些学生不是编程社团的成员,因此 可能小于 。
同年级的社团成员之间有着良好的关系。因此,每个年级在SNS上都有一个聊天群组,该年级的社团成员可以通过群组聊天与彼此即时交流。另一方面,不同年级之间的关系不太好,整个社团和整个高中都没有一个聊天群组。
为了向SNS上的所有社团成员广播一条消息,社团管理员想出了一种方法:管理员将消息告诉 名学生中的任意一位学生,并要求他们通过聊天群组和自己的朋友在SNS上传播该消息。(管理员自己没有SNS账号。)由于同年级的成员可以通过年级的聊天群组广播消息,我们可以假设如果某个年级的一个成员接收到消息,该年级的所有其他成员也会立即收到消息。因此,如果至少有每个年级的一个成员被告知该消息,我们可以假设该消息已在SNS上向所有社团成员广播。
由于与朋友之间的交流会产生麻烦,我们希望将朋友之间的通信次数最小化。要广播一条消息给所有社团成员,朋友之间通信的最小次数是多少?为了实现通信最小化,管理员应该首先把消息告诉给谁?
输入
输入包含一个测试用例。测试用例的格式如下:
...
...
...
...
第一行包含四个整数 、、 和 。 () 表示SNS中的学生人数,、 和 ( 且 ) 表示编程社团中的一二三年级成员人数。每个SNS上的学生用一个介于 和 之间的唯一数字ID表示。第二行包含 个整数 (),表示一年级成员的ID。第三行包含 个整数 (),表示二年级成员的ID。第四行包含 个整数 (),表示三年级成员的ID。可以假设 $a\_1, \\cdots, a\_A, b\_1, \\cdots, b\_B, c\_1, \\cdots, c\_C$ 是不相同的。第五行包含一个整数 ()。 表示SNS中存在友谊关系的学生对数。以下 行中的第 行包含两个整数 和 (),表示SNS中 ID 分别为 和 的两位学生是朋友。可以假设 (),且如果 (),则有 或 以及 或 。你还可以假设通过朋友和群组聊天消息可以从任何一个学生传递给SNS上的任何一个学生。
输出
输出朋友之间通信次数(不包括群组聊天),以及为了实现通信最小化,管理员应该首先把消息告诉给哪位学生的ID,两者之间用一个空格分隔。如果有多个符合上述条件的学生,请输出其中ID最小的学生。
样例输入 1
4 2 1 1
1 2
3
4
3
1 2
2 4
3 4```
### 样例输出 1
```plain
2 1```
### 样例输入 2
```plain
4 1 1 1
2
3
4
4
1 2
1 3
1 4
2 4```
### 样例输出 2
```plain
3 1```
### 样例输入 3
```plain
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
```plain
2 3```