![]() |
||||||||||
|
||||||||||
小猫钓鱼Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1 Accepted Submission(s): 1 Problem Description Long Long 和 Int64 在用扑克牌玩小猫钓鱼的游戏,这个游戏太好玩了: 两人各有一组牌,数量相等,两组牌只有 $1-9$ 的数字牌,两人有一个公共的出牌堆,两人轮流往出牌堆 出牌,出牌顺序固定。 每当一张数字牌进入出牌堆,就从出牌堆顶部往下寻找最近的相同数字牌: - 如果找到了,将这两张牌之间的所有牌(包括这两张)从出牌堆取走(移出游戏),取走的卡牌数量记作出牌人的得分。 - 如果没找到,什么都不会发生。 轮流出牌直到没牌,最后比较两者的得分,分高者获胜。 但是他们觉得只有数字牌太无聊了,添加了 $JQK$ 三张扑克牌的特殊效果,一下子新游戏就火遍全球,以下是游戏的新规则: 基础规则不变,卡组加入$JQK$,拥有特别的效果,效果在该牌放置后生效: - $Q$ 牌:锁牌,有两种状态(上锁和解锁),刚打出为上锁状态。 - $J$ 牌:从牌堆顶部往下取走牌(包括 $J$ 本身),直到取到上锁的 $Q$(取走锁为止,没有上锁的 $Q$ 就取走所有牌),记作出牌人的得分。 - $K$ 牌:将最近的上锁牌解锁,如果没有锁就什么都不会发生。 - 数字牌:在原来基础上,如果找到了最近的相同数字牌,两者之间没有上锁的 $Q$ ,直接取走记分;如果两者之间有上锁的 $Q$ ,解开离牌顶最近的一个锁。 碰巧 CF (Cat Fishing) 大赛要开始了,比赛方为了比赛公平性,希望设计一个系统能够公平的判断比赛的结果。Long Long 和 Int64 作为新游戏创始人邀请你来设计一个程序,能通过两者的手牌得到两者的分数。 程序会输入两个玩家 $A$ 和 $B$ 的出牌情况,玩家 $A$ 先出牌。 Input 每个测试包含多个测试用例。第一行包含测试用例的数量 $t$ ( $1 \le t \le 100$ )。测试用例说明如下。 每个测试用例由三行组成: - 第一行包含一个整数 $n$ ( $1 \le n \le 10^{4}$ ) ,即两人的手牌数量。 - 第二行包含一个长度为 $n$ 的字符串 $S_1$ 代表玩家 $A$ 的出牌顺序。 - 第三行包含一个长度为 $n$ 的字符串 $S_2$ 代表玩家 $B$ 的出牌顺序。 保证所有测试用例中 $n$ 的总和不超过 $10^{6}$。 Output 对于每个测试用例,输出两个整数,用空格分开,表示玩家 $A$ 和玩家 $B$ 的得分。 Sample Input
Sample Output
Source | ||||||||||
|