CF173A Rock-Paper-Scissors

题目描述

Nikephoros 和 Polycarpus 正在玩石头剪子布。输的一方会被掐一下(不过不会太严重)。 让我们回顾一下这个游戏的规则。石头剪子布由两名玩家进行。在每一轮中,玩家独立选择三种物品中的一种,并用手势表示:石头、剪刀或布。胜者由以下规则判定:石头胜剪刀,剪刀胜布,布胜石头。如果两人选择相同的物品,则该轮为平局。 Nikephoros 和 Polycarpus 一共玩了 $n$ 轮。每一轮,胜者会友好地掐输者一下,输者的身上会多出一个红点。如果该轮平局,两人什么也不做,继续进行下一局。 Nikephoros 使用了这样一种策略:在游戏开始之前,他先选定一个物品序列 $A=(a_1,a_2,...,a_m)$,然后在每一轮中按顺序重复依次出这个序列中的手势,循环进行。循环意味着 Nikephoros 出手的顺序为 $a_1, a_2, ..., a_m, a_1, a_2, ..., a_m, a_1, ...$ 以此类推。Polycarpus 也有类似的策略,只是他有自己的物品序列 $B=(b_1,b_2,...,b_k)$。 请你计算经过 $n$ 轮游戏后,Nikephoros 和 Polycarpus 身上的红点数(即各自输掉的次数)。可以认为游戏开始时两人身上都没有红点。

输入格式

第一行包含整数 $n$($1 \leq n \leq 2 \times 10^9$),表示游戏的轮数。 第二行是字符串形式的序列 $A$,长度为 $m$。 第三行是字符串形式的序列 $B$,长度为 $k$。($1 \leq m, k \leq 1000$)。字符串只包含字符 "R"、"S" 和 "P"。"R" 表示石头,"S" 表示剪刀,"P" 表示布。

输出格式

输出两个用空格隔开的整数,表示 Nikephoros 和 Polycarpus 分别身上的红点数。

说明/提示

在第一个样例中,游戏过程如下: - R - R。平局。 - P - S。Nikephoros 输。 - S - P。Polycarpus 输。 - R - P。Nikephoros 输。 - P - R。Polycarpus 输。 - S - S。平局。 - R - P。Nikephoros 输。 所以最终 Nikephoros 输了 $3$ 次(有 $3$ 个红点),Polycarpus 只输了 $2$ 次。 由 ChatGPT 5 翻译