麻烦大佬帮忙看看,谢谢
查看原帖
麻烦大佬帮忙看看,谢谢
324176
yuyuyuyu12345楼主2023/5/30 18:59
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
	int n, a, b,x;
	int k = 0;
	cin >> n >> a >> b;
	int at[210], bt[210];
	for (int i = 0; i < n; i++)
	{
		if (i < a) {
			cin >> x;
			at[k] = x;
			k++;
		}
		else {
			at[k] = at[k - a];
			k++;
		}
	}k = 0;
	int cnt1 = 0, cnt2 = 0;
	for (int i = 0; i < n; i++)
	{
		if (i < b) {
			cin >> x;
			if (x == 1) //石头
			{
				if (at[k] == 0||at[k]==3) cnt2++; //石头赢剪刀1和蜥蜴人3
				else if (at[k] == 2||at[k]==4) cnt1++;//石头输给布和斯波克
			}
			else if (x == 0)//剪刀
			{
				if (at[k] == 2 || at[k] == 3) cnt2++;//剪刀赢布和蜥蜴人
				else if (at[k] == 1 || at[k] == 4) cnt1++;//剪刀输石头和斯波克
			}
			else if (x == 2)//布
			{
				if (at[k] == 1 || at[k] == 4) cnt2++;//布赢石头和斯波克
				else if (at[k] == 3 || at[k] == 0) cnt1++;//布输蜥蜴人和剪刀
			}
			else if (x == 3)//蜥蜴人
			{
				if (at[k] == 2 || at[k] == 4) cnt2++;//蜥蜴人赢布和斯波克
				else if (at[k] == 0 || at[k] == 1) cnt1++;//蜥蜴人输剪刀和石头
			}
			else if (x == 4)//斯波克
			{
				if (at[k] == 2 || at[k] == 3) cnt1++;//斯波克输布和蜥蜴人
				else if (at[k] == 0 || at[k] == 1) cnt2++;//斯波克赢剪刀和石头
			}
			bt[k] = x;
			k++;
		}
		else {
			bt[k] = bt[k - b];
			if (bt[k] == 1) //石头
			{
				if (at[k] == 0 || at[k] == 3) cnt2++; //石头赢剪刀1和蜥蜴人3
				else if (at[k] == 2 || at[k] == 4) cnt1++;//石头输给布和斯波克
			}
			else if (bt[k] == 0)//剪刀
			{
				if (at[k] == 2 || at[k] == 3) cnt2++;//剪刀赢布和蜥蜴人
				else if (at[k] == 1 || at[k] == 4) cnt1++;//剪刀输石头和斯波克
			}
			else if (bt[k] == 2)//布
			{
				if (at[k] == 1 || at[k] == 4) cnt2++;//布赢石头和斯波克
				else if (at[k] == 3 || at[k] == 0) cnt1++;//布输蜥蜴人和剪刀
			}
			else if (bt[k] == 3)//蜥蜴人
			{
				if (at[k] == 2 || at[k] == 4) cnt2++;//蜥蜴人赢布和斯波克
				else if (at[k] == 0 || at[k] == 1) cnt1++;//蜥蜴人输剪刀和石头
			}
			else if (bt[k] == 4)
			{
				if (at[k] == 2 || at[k] == 3) cnt1++;//斯波克输布和蜥蜴人
				else if (at[k] == 0 || at[k] == 1) cnt2++;//斯波克赢剪刀和石头
			}
			k++;
		}
	}
	cout << cnt1 << ' ' << cnt2 << endl;
}
2023/5/30 18:59
加载中...