loj#P3176. 「IOI2019」景点划分

「IOI2019」景点划分

题目描述

巴库有 nn 处景点。从 00n1n-1 编号。另外还有 mm 条双向道路,从 00m1m-1 编号。每条道路连接两个不同的景点。经由这些道路,可以在任意两处景点之间往来。

Fatima 打算在三天之内参观完所有这些景点。她已经决定要在第一天参观 aa 处景点,第二天参观 bb 处景点,第三天参观 cc 处景点。因此,她要把这 nn 处景点划分为三个集合 A,BA,BCC,其规模分别为 a,ba,bcc。每处景点恰好属于其中一个集合,因此有 a+b+c=na+b+c=n

Fatima 想要找到这样的集合划分 A,BA,BCC,使得这三个集合中的至少两个连通的。一个景点集合 SS 被称为是连通的,如果能够经由这些道路在 SS 中的任意两处景点之间往来,且不需要经过不在 SS 中的景点。如果满足上述要求,则景点的一个划分 A,BA,BCC 被称为是合法的

请帮助 Fatima 找到一个合法的景点划分(给定 a,ba,bcc),或者判定合法的划分不存在。如果存在多个合法的划分,你可以给出其中的任意一个。

输入格式

第一行两个整数 n,mn,m,分别表示景点数与道路数;

第二行三个整数 a,b,ca,b,c,表示集合 A,BA,BCC 的期望规模;

接下来 mm 行,第 ii 行两个整数 pi,qip_i,q_i,表示编号为 pip_i 的景点和编号为 qiq_i 的景点之间有一条双向道路。

输出格式

输出一行 nn 个整数,每两个整数之间用一个空格隔开。如果不存在合法的划分,输出的 nn 个整数均为 00。否则,对于输出的第 ii 个整数 sis_i,应为 1,21,233 中的一个,表示景点 i1i-1 被归到集合 A,BA,BCC

9 10
4 2 3
0 1
0 2
0 3
0 4
0 6
0 8
1 7
3 7
4 5
5 6
1 1 3 1 2 2 3 1 3
6 5
2 2 2
0 1
0 2
0 3
0 4
0 5
0 0 0 0 0 0

数据范围与提示

对于所有数据:

  • 3n1053\le n\le 10^5
  • 2m2×1052\le m\le 2\times 10^5
  • 1a,b,cn,a+b+c=n1\le a,b,c\le n,a+b+c=n
  • 每一对景点之间至多有一条道路;
  • 经由这些道路,可以在任意两处景点之间往来;
  • 对于 1im1\le i\le m,有 0pi,qin10\le p_i,q_i\le n-1piqip_i\neq q_i

详细子任务附加限制与分值如下表:

子任务编号 附加限制 分值
11 每处景点至多可做两条道路的端点 77
22 a=1a=1 1111
33 m=n1m=n-1 2222
44 n2.5×103,m5×103n\le 2.5\times 10^3,m\le 5\times 10^3 2424
55 没有任何附加限制 3636