#P6865. [RC-03] 染色

[RC-03] 染色

Description

给一个无向图,求尽量小的 kk,使得能够把节点分为 kk 个集合,且同一集合的点间没有边。

Input Format

第一行三个整数:n,m,k0n,m,k_0,表示有 nn 个点,mm 条边,你的 kk 只要满足 kk0k\le k_0 就能得到满分。

接下来 mm 行,每行两个数 x,yx,y,描述一条边 (x,y)(x,y)(1x,yn,xy)(1\le x,y\le n,x\ne y)

Output Format

两行,第一行为一个整数 kk,为你的答案。(1kn)(1\le k\le n)

第二行 nn 个整数,第 ii 个表示 ii 被分到的集合编号 aia_i(1aik)(1\le a_i\le k)

3 3 3
1 2
2 3
3 1
3
1 2 3

Hint

对于每个测试点:

  • 若你的输出不合法,你将得到 00 分。
  • kk0k\le k_0,你将得到满分。
  • 否则你将得到(设该测试点满分为 aa):a×k0k\lfloor a \times \dfrac{k_0}{k}\rfloor 分。

本题共有 1818 个测试点,所有测试点均满足 1n1051\le n\le 10^51m5×1051\le m\le 5\times 10^5,且保证存在一种满足 kk0k\le k_0 的方案。以下是每个测试点的分值:

测试点编号 分值
141\sim 4 44
565\sim 6 55
7177\sim 17 66
1818 88