一个密钥是一个长度为
如下图所示,可以按顺时针顺序把这
在
具体来说,从 X 出发顺时针走到某个 A 时,如果途中 A 的数目严格多于 B 的数目,则称此字母 A 为强的。
对于上面的例子来说,顺时针方向从字母 X 数起第
一个密钥的特征值就是其中包含的强的字母 A 的个数。
天才小朋友 KT 给出了一个结论:
假设
可以证明:所有这
下页的图是一个具体的示例,从左到右的四个子图中分别有3个,2个,1个,0个字母A是强的。
类似地,如果固定
现在你需要解决以下三个问题:
- 给定密钥中所有 A 的位置,当密钥的特征值为
时,请问 X 在哪个位置。 - 给定密钥中所有 A 的位置,当密钥的特征值为
时,请问 X 在哪个位置。 - 给定密钥中所有 B 的位置,当密钥的特征值为
时,请问 X 在哪个位置。
注意:字符串的
例子一
假定
当 A 的位置是
当 A 的位置是
当 B 的位置是
例子二
假定
当 A 的位置是
当 A 的位置是
当 B 的位置是
输入格式
只包含一组测试数据。
第一行包含一个整数
第二行包含一个整数
第三行包含一个整数
保证
在下发文件中,包含三个用于生成输入数据的文件cipher.cpp/c/pas
。其中读入部分已经完成,在数组
输出格式
输出三行,每行一个数,依次对应问题描述中的三个子问题的答案。
即:
- 第一个数表示当
元集合 代表 A 的位置且特征值为 时 X 的位置。 - 第二个数表示当
元集合 代表 A 的位置且特征值为 时 X 的位置。 - 第三个数表示当
元集合 代表 B 的位置且特征值为 时 X 的位置。
样例一
input
5 3344 2
output
10 1 2
explanation
第一个样例中,
样例二
input
500000 4545 234567
output
999992 246922 753067
限制与约定
对于
对于
对于
对于每个测试点,得分为以下三部分得分之和:
- 如果第一问回答正确,你将获得
分。 - 如果第二问回答正确,你将获得
分。 - 如果第三问回答正确,你将获得
分。
如果你仅仅知道部分答案,请也务必按此格式要求输出三个数。否则你可能会因格式错误无法得分。
时间限制:
空间限制: