#P14807. [CCPC 2024 哈尔滨站] 欢迎加入线上会议!
[CCPC 2024 哈尔滨站] 欢迎加入线上会议!
题目描述
你想在 MeLink 上组织一次有 位参会者的线上会议,参会者编号为 到 。对于这 位参会者的每一位,都至少认识一位除了自己之外的参会者,认识关系是双向的。
会议的组织过程如下:首先由一个人创建会议并加入。随后,已经进入会议的成员可以拉一些自己认识但还没入会的参会者入会,直到所有 位参会者都入会。但是有 位参会者正忙着调试程序,这些人可以被拉进会议,但不会创建会议或拉他认识的人入会。
你希望确定是否有可能让所有 位成员都入会。如果可行,请确定拉人入会的方案。
输入格式
第一行三个整数 (, $1 \le m \le \min\{5 \times 10^5, \frac{n(n-1)}{2}\}$, ),分别表示参会者人数,互相认识的关系数和目前正忙的人数。
第二行 个整数 (),其中第 个整数表示第 位成员正忙。这些整数两两不同。如果 ,这一行将为空,但不会省略。
接下来的 行中,每行两个整数 和 (, ),表示 和 相互认识。认识关系是双向的。保证同一认识关系不会重复出现,且每个人都至少认识另一个人。
输出格式
如果无法组织有这 位成员参加的会议,则在第一行输出 。
如果可以,则在第一行输出 。接下来,在第二行输出一个整数 (),表示组织该会议所需的步骤数。
接下来 行,每行描述组织该会议的一步。在第 行,首先输出一个整数 ()。如果 ,则 表示创建会议的成员,否则, 必须是已经被拉入会议的一位成员。所有的 应两两不同。接下来,输出一个整数 (),表示 拉 个成员入会。最后,输出 个整数 (),表示被 拉入会议的成员编号。 应当两两不同,并且整个过程中同一个人不能多次被拉入会。
你不必最小化 ,输出任意一种合法方案均可。
4 5 2
3 4
1 2
1 3
2 3
3 4
2 4
Yes
2
1 2 2 3
2 1 4
4 5 3
2 4 3
1 2
1 3
2 3
3 4
2 4
No