题解 P1328 【生活大爆炸版石头剪刀布】
CherYou
2017-09-17 22:12:17
直接把加分表打进二维数组;
最开始看错了,以为输了要减分QAQ;
```cpp
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n;
int na,nb,ans1=0,ans2=0;
int NA[205],NB[205] ;
int score[6][6]={{0,0,1,1,0},{1,0,0,1,0},{0,1,0,0,1},{0,0,1,0,1},{1,1,0,0,0}}; //关键啊
int main()
{
scanf("%d%d%d",&n,&na,&nb);
for(int i=1;i<=na;i++)
scanf("%d",&NA[i]);
for(int i=1;i<=nb;i++)
scanf("%d",&NB[i]);
int j=1,u=1;
for(int i=1;i<=n;i++)
{
ans1+=score[NA[j]][NB[u]]; // 算两个人的得分正反各来一次
ans2+=score[NB[u]][NA[j]];
if(j==na) j=1; // 这里不是很美观自己觉得
else j++;
if(u==nb) u=1;
else u++;
}
printf("%d %d",ans1,ans2);
}
```