洛谷 P1328 生活大爆炸版石头剪刀布


简单模拟题

打个表就行

#include <iostream>
using namespace std;

const int MAXN = 210;
int a[MAXN];
int b[MAXN];
int main()
{
	int soc[5][5] = 
	{	 0,-1, 1, 1,-1,
		 1, 0,-1, 1,-1,
		-1, 1, 0,-1, 1,
		-1,-1, 1, 0, 1,
	     1, 1,-1,-1, 0, }; //打表
	int l, lena, lenb, ansa = 0, ansb = 0;
	cin>>l>>lena>>lenb;
	
	for(int i = 0; i < lena; i++)
		cin>>a[i];
	for(int j = 0; j < lenb; j++)
		cin>>b[j];
	int i = 0, j = 0;
	while(l--)
	{
		if(soc[a[i]][b[j]] == 1) //加分减分
			ansa ++;
		else if(soc[a[i]][b[j]] == -1) 
			ansb ++;
		i++;
		j++;
		if(i == lena)
			i = 0; //循环数组
		if(j == lenb)
			j = 0;
	}
	cout<<ansa<<' '<<ansb<<endl;
	return 0;
}

posted @ 2018-05-23 21:36  张浦  阅读(83)  评论(0编辑  收藏  举报