代码:
#include <bits/stdc++.h>
using namespace std;
int gcd (int m, int n) {
if (m < n) swap(m, n);
if (n == 0) return m;
else return gcd(n, m % n);
}
int n;
long long lenA, lenB, losesA[1000005], losesB[100005], sumA[1000005], sumB[100005];
int main() {
cin >> n;
string A, B;
cin >> A >> B;
lenA = A.size(), lenB = B.size();
int Len = lenA * lenB / gcd(lenA, lenB);
for (int i = 1; i <= Len; ++i) {
if (A[(i - 1) % lenA] == 'R' && B[(i - 1) % lenB] == 'P') {
losesA[i]++;
}
if (A[(i - 1) % lenA] == 'R' && B[(i - 1) % lenB] == 'S') {
losesB[i]++;
}
if (A[(i - 1) % lenA] == 'P' && B[(i - 1) % lenB] == 'S') {
losesA[i]++;
}
if (A[(i - 1) % lenA] == 'P' && B[(i - 1) % lenB] == 'R') {
losesB[i]++;
}
if (A[(i - 1) % lenA] == 'S' && B[(i - 1) % lenB] == 'R') {
losesA[i]++;
}
if (A[(i - 1) % lenA] == 'S' && B[(i - 1) % lenB] == 'P') {
losesB[i]++;
}
sumA[i] = sumA[i - 1] + losesA[i];
sumB[i] = sumB[i - 1] + losesB[i];
}
cout << (n / Len) * sumA[Len] + sumA[n % Len] << " ";
cout << (n / Len) * sumB[Len] + sumB[n % Len] << endl;
return 0;
}