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

CherYou

2017-09-17 22:12:17

Solution

直接把加分表打进二维数组; 最开始看错了,以为输了要减分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); } ```