AC代码:
```cpp
#include <bits/stdc++.h>
using namespace std;
long long n, a1, b1, a[255], b[255], r, aa, bb;
int main() {
cin >> n >> a1 >> b1;
for (int i = 0; i < a1; i++) {
cin >> a[i];
}
for (int i = 0; i < b1; i++) {
cin >> b[i];
}
a[a1] = a[0];
b[b1] = b[0];
for (int i = a1; i < n; i++) {
a[i] = a[i % a1];
}
for (int i = b1; i < n; i++) {
b[i] = b[i % b1];
}
//a1和b1应该不要加一,因为数组的下标只到a1-1和b1-1,但是加一也能过
for (int i = 0; i < n; i++) {
if (a[i] == 0) {
if (b[i] == 2 || b[i] == 3) {
aa++;
} else if (b[i] == a[i]) {
} else {
bb++;
}
} else if (a[i] == 1) {
if (b[i] == 0 || b[i] == 3) {
aa++;
} else if (b[i] == a[i]) {
} else {
bb++;
}
} else if (a[i] == 2) {
if (b[i] == 1 || b[i] == 4) {
aa++;
} else if (b[i] == a[i]) {
} else {
bb++;
}
} else if (a[i] == 3) {
if (b[i] == 4 || b[i] == 2) {
aa++;
} else if (b[i] == a[i]) {
} else {
bb++;
}
} else {
if (b[i] == 0 || b[i] == 1)
//修改了此处,因为剪刀和石头对斯波克是输
//那么斯波克对剪刀和石头是斯波克赢
//布和蜥蜴人对斯波克是赢,对于斯波克来说
//布和蜥蜴人对斯波克是斯波克输
{
aa++;
} else if (b[i] == a[i]) {
} else {
bb++;
}
}
}
cout << aa << ' ' << bb;
return 0;
}
```
by TangHaohong @ 2023-08-02 22:04:14