/ WHOJ / 题库 /

魔法

魔法

题目描述

有 \(n\) 个小球排成一行,每个小球是红色或者蓝色。开始你被给定了两个非负整数 \(R\) 和 \(B\) 。

每次你可以施展一个魔法,每次魔法你可以选择任意不同的 \(R+B\) 个球,将这些球全部变成白色,但是需要满足下列条件:
\(1\)、你选择的 \(R+B\) 个球中,需要有恰好 \(R\) 个红球和恰好 \(B\) 个蓝球。

\(2\)、你选择的 \(R+B\) 个球中,最左端的球和最右端的球之间,不能有之前已经变成白色的球。

问是否能用若干次魔法将所有球都变成白色,若可以请输出任意一组方案。

格式

输入格式

第一行三个整数 \(n,R,B\) ,含义见题目描述。

第二行一个长度为 \(n\) 的只含 \(\text{R}\) 或 \(\text{B}\) 的字符串,第 \(i\) 个字符表示第 \(i\) 个球的颜色, \(\text{R}\) 表示红色, \(\text{B}\) 表示蓝色。

输出格式

如果不存在合法方案,你只要输出一行 \(\text{NO}\) 即可。

否则如果存在合法方案,你需要在第一行输出一个 \(\text{YES}\) ,在第二行输出一个整数 \(S\) 表示使用魔法的次数。<br>接下来 \(S\) 行,每行 \(R+B\) 个整数,表示每一次魔法选中的球的编号。

请注意,每一行内的编号可以按照任意顺序,但是这 行需要按照时间顺序从前到后输出。如果有多组合法解,你只要输出任意一组即可。

样例1

样例输入1

6 1 1
RBBRRB

样例输出1

YES
3
1 6
2 5
3 4

限制

本题采用子任务捆绑测试。对于每个子任务,你只有通过了这个子任务的所有数据,才能获得这个子任务的分数。

子任务 \(1\) ( \(10\) 分): \(R=0\) ;

子任务 \(2\) ( \(20\) 分): \(R=B=1\) ;

子任务 \(3\) ( \(15\) 分): \(n\le 10\) ;

子任务 \(4\) ( \(55\) 分): \(n\le 200\) ;

对于所有数据, \(R,B\ge 0,1\le R+B\le n\le 10^5\) 。

信息

ID
1821
难度
7
分类
数学模拟 点击显示
标签
递交数
4
已通过
1
通过率
25%
上传者

相关

在下列训练计划中:

YGP模拟赛

在下列比赛中:

Subtask test