#P1065. 双阶段方案划分
双阶段方案划分
题目描述
某评审系统中有 个候选方案,每个方案都需要经过 个检测阶段。
第 个方案在第 个检测阶段的评分为 ,所有评分组成一个 行 列的矩阵。
现在需要完成以下两项工作:
- 将每个候选方案分配到
R组或B组,并保证两个组中都至少有一个方案。 - 选择一个整数 ,其中 ,将全部检测阶段分成前后两部分:
- 第 到第 个检测阶段属于前半部分;
- 第 到第 个检测阶段属于后半部分。
划分结果需要同时满足以下条件:
- 在前半部分中,
R组所有方案的所有评分,都必须严格大于B组所有方案的所有评分。 - 在后半部分中,
B组所有方案的所有评分,都必须严格大于R组所有方案的所有评分。
更具体地说:
- 对任意属于
R组的方案 、属于B组的方案 ,以及任意 ,都应满足 。 - 对任意属于
R组的方案 、属于B组的方案 ,以及任意 ,都应满足 。
请判断是否存在满足要求的分组方式和阶段切分位置。
如果存在,输出任意一种合法方案。
输入格式
第一行包含一个整数 ,表示测试数据的组数。
对于每组测试数据:
- 第一行包含两个整数 ,分别表示候选方案数量和检测阶段数量。
- 接下来 行,每行包含 个整数。
- 第 行的第 个整数为 ,表示第 个方案在第 个检测阶段的评分。
输出格式
对于每组测试数据:
如果不存在满足要求的方案,输出一行:
NO
如果存在满足要求的方案,首先输出一行:
YES
随后输出一个长度为 的字符串和一个整数 。
字符串的第 个字符表示第 个方案所属的组:
- 字符为
R,表示该方案属于R组。 - 字符为
B,表示该方案属于B组。
整数 表示前半部分包含前 个检测阶段。
如果存在多种合法答案,输出任意一种即可。
样例
3
3 4
1 3 9 8
8 7 2 1
2 4 7 6
2 3
5 5 5
5 5 5
4 3
9 1 2
8 3 1
1 8 9
2 7 8
YES
BRB 2
NO
YES
RRBB 1
样例说明
第一组测试数据中,将第 个方案分入 R 组,将第 、第 个方案分入 B 组,并在第 个检测阶段后进行切分。
前两个检测阶段中,R 组的评分为 ,它们均严格大于 B 组中的评分 。
后两个检测阶段中,B 组的评分为 ,它们均严格大于 R 组中的评分 。
第二组测试数据中的所有评分均相同,因此无法满足严格大小关系。
第三组测试数据在第 个检测阶段后切分,并将前两个方案分入 R 组,后两个方案分入 B 组,可以满足全部条件。
数据范围
- 对于每组测试数据,
- 所有测试数据的 之和不超过