#include<bits/stdc++.h>
using namespace std;
int N, NA, NB, head1 = 1, head2 = 1, pointA = 0, pointB = 0;
int A[210], B[210];
/*
题目意思:
剪刀赢布和蜥蜴人
石头赢剪刀和蜥蜴人
布赢石头和斯波克
蜥蜴人赢布和斯波克
斯波克赢剪刀和石头
0 表示"剪刀",1 表示"石头",2 表示"布",3 表示"蜥蜴人", 4 表示"斯波克"。
*/
void jiafen(int x, int y) {
if (A[x] == B[y]) return;
else {
if (A[x] == 0 && (B[y] == 2 || B[y] == 3)) {
pointA++;
return;
}
if (A[x] == 1 && (B[y] == 0 || B[y] == 3)) {
pointA++;
return;
}
if (A[x] == 2 && (B[y] == 1 || B[y] == 4)) {
pointA++;
return;
}
if (A[x] == 3 && (B[y] == 2 || B[y] == 4)) {
pointA++;
return;
}
if (A[x] == 4 && (B[y] == 0 || B[y] == 1)) {
pointA++;
return;
}
pointB++;
}
}
int main() {
// freopen("rps.in","r",stdin);
// freopen("rps.out","w",stdout);
scanf("%d%d%d", &N, &NA, &NB);
for (int i = 1; i <= NA; i++) {
scanf("%d", &A[i]);
}
for (int i = 1; i <= NB; i++) {
scanf("%d", &B[i]);
}
for (int i = 1; i <= N; i++) {
jiafen(head1, head2);
head1++;
head2++;
if (head1 > NA) head1 = 1;
if (head2 > NB) head2 = 1;
}
printf("%d %d", pointA, pointB);
return 0;
}
石头剪刀布升级版(2014noip提高组)
最新推荐文章于 2025-05-07 15:02:36 发布