#CF1948E. 团划分
团划分
E. 团划分
单个测试点时间限制: 秒 单个测试点内存限制: 兆字节
给定两个整数 和 。有一张包含 个结点的图,结点编号为 到 ,初始时没有边。
你需要给每个结点分配一个整数,设结点 上的数为 。 所有 必须是 到 之间互不相同的整数。
分配完数值后,对于每一对结点 ,如果满足
就在它们之间连一条边。
你的目标是构造出这样的数组 ,使得这张图可以被划分为最少可能的团。每个结点必须恰好属于一个团。 回顾团的定义:一个结点集合中,任意两个结点之间都有边相连。
由于出题人不会求解“给定图,求最小团划分”,我们也要求你输出划分方案。
输入格式
第一行包含一个整数 (),表示测试用例数量。
每个测试用例一行,包含两个整数 和 (;)。
输出格式
对每个测试用例输出三行:
- 第一行输出 个互不相同的整数 ();
- 第二行输出一个整数 (),表示团的数量;
- 第三行输出 个整数 (),表示每个结点所在的团编号。
如果有多种答案,输出任意一种即可。
样例输入
3
2 3
5 4
8 16
样例输出
2 1
1
1 1
3 1 5 2 4
2
1 1 2 1 2
1 2 3 4 5 6 7 8
1
1 1 1 1 1 1 1 1