#Lutece3333. 无尽加时
无尽加时
Description
你现在正在观看一场游戏名叫做 Volaront 的第一人称射击(First-Person Shooting,FPS)游戏的比赛。这个游戏的比赛赛制被称作 。
其中 是指这个比赛会由不超过 或者 个对局组成。对于 ,双方每次对局胜利的一方获得一个大分,先获得 个大分的一方获得整个比赛的胜利,并且结束整个比赛。例如对于 ,先获得两个大分的一方获胜,那么比赛结束时大分的比分就有可能为 或者 。 是指对于一场对局,常规时间不超过 回合。对于每个回合,双方会有一方获胜,获得 个小分。先获得 个小分的一方获胜,并结束这场对局,并且先取得 小分的一方获得 大分,此时双方获得的小分记作这场对局的比分,清空小分并开始下一个对局或者结束比赛。但还未开始的对局不计入考虑。
当然,每场对局中还会有加时的概念,当对局的第 回合结束两方的比分为 时,比赛将会进行到加时阶段,不断继续开始下一个回合,直到某方小比分比另一方小比分多 分时对局才会结束,如果双方轮流取得胜利的话,这个对局将会一直加时下去。例如现在小分是 ,这时候对局并未结束,仍然在加时阶段,如果下一回合左方获胜,此时小分比分变为 ,那么整个对局左方获胜,获得一大分,对局结束,如果变为 ,那么将继续加时,直到例如 或者 的比分,对局才会结束。
你观看了一场 Volaront 的赛制为 的比赛,但由于种种原因,记录仪坏了,你忘了已经进行了几把对局,每把对局的比分,以及比赛是否仍在进行。你知道的仅为一个长度为 的记录所有对局的所有回合按顺序排列的哪方取得回合胜利的序列。你现在想知道如果在当前的比赛规则下,双方的所有对局情况以及整场比赛是否结束。
Input
第一行一个整数 (),表示测试数据组数。
对于每组数据,第一行一个整数 (),表示这场比赛是 的赛制。
第二行一个长度不超过 的 序列,表示这场比赛当前的胜利序列,其中 代表左方获胜, 代表右方获胜。保证序列合法,即不会出现整场比赛结束后仍有对局。
Output
对于每组数据,输出两行,第一行输出整场比赛是否结束,如果已经结束输出 Yes
,否则输出 No
。
第二行输出大比分 ,以及每场对局的小比分 ,用一个空格分隔。请注意,如果比赛尚未结束,则大比分不会考虑最后进行的这局,但需要输出小比分。同时还未开始的对局不计入考虑,输出格式请参考两组样例的输出。
Samples
3
2
00001001001111000000000100000010010
2
1100000011110011001100101100001000100010010
2
000000000001111111111111
Yes
2:0 13:6 13:3
Yes
2:0 13:11 13:6
No
0:1 11:13
7
2
110100011111000011001111101111100011100010011
2
111111001101110000101110000101101001110110000001001000001
2
000100010010000000111100011011111001111111001110111011
2
11111110011100100101110110111111
2
110000000110100100111000100011101111110001111110111101111100001
2
0011000000011111110100110101001101110100111111100100110101100100101
3
11000000000100111001111111110111000110110100010100111011110011010100110011000011101100111011101110000011
Yes
0:2 10:13 9:13
No
1:1 8:13 13:11 9:3
Yes
1:2 13:3 8:13 4:13
No
0:1 7:13 2:10
Yes
1:2 13:9 9:13 6:13
No
1:1 16:14 4:13 11:9
Yes
2:3 13:6 4:13 9:13 13:11 9:13
Resources
电子科技大学第十五届 ACM 趣味程序设计竞赛