现充|junyu33

题解 P1328 【生活大爆炸版石头剪刀布】

二维数组+奇葩得分

因为双方最多只能得200分,让A方赢加10000,另一方赢加1,再整除(求余)肯定没问题。

#include<bits/stdc++.h>
using namespace std;
int a[5][5] = { {0,1,10000,10000,1},
           {10000,0,1,10000,1},
	        {1,10000,0,1,10000},
		      {1,1,10000,0,10000},
		      {10000,10000,1,1,0} };  //二维打表省去冗长if(switch)
int main()
{
	int n; cin >> n;                 //局数
	int r[210], s[210];
	int na, nb; cin >> na >> nb;
	for (int i = 0; i < na; i++)
		cin >> r[i];
	for (int i = 0; i < nb; i++)
		cin >> s[i];                 //每个循环要出啥子 
	int ans = 0;
	for (int i = 0; i < n; i++)
		ans += a[r[i%na]][s[i%nb]];     //模拟双方得分
	cout << ans / 10000 << " " << ans % 10000;//得出单方得分
   return 0;
}