版权声明:本人菜鸟一只,如文章有错误或您有高见,请不吝赐教 https://blog.csdn.net/qq_41138935/article/details/83786105
题目:A、B、C三个人猜拳,每一轮正好可以分成胜负两边,负边的每一个要支付给胜边的每个人一块钱,
如果无法分成胜负两边,则都不出钱。
例如:0 2 2 代表A输BC赢,012,000无法分出胜负。
#include<cstdio>
int arr[27][3];
int sum[3]={0,0,0};
void f1(int n,int s1,int s2,int s3){
arr[n][0]=s1;
arr[n][1]=s2;
arr[n][2]=s3;
}
void f(){
f1(1,1,1,-2);
f1(14,1,1,-2);
f1(24,1,1,-2);
//
f1(2,-1,-1,2);
f1(12,-1,-1,2);
f1(25,-1,-1,2);
//
f1(3,1,-2,1);
f1(16,1,-2,1);
f1(20,1,-2,1);
//
f1(6,-1,2,-1);
f1(10,-1,2,-1);
f1(23,-1,2,-1);
//
f1(8,-2,1,1);
f1(9,-2,1,1);
f1(22,-2,1,1);
//
f1(4,2,-1,-1);
f1(17,2,-1,-1);
f1(18,2,-1,-1);
}
int main(){
int n,a,b,c;
f();
scanf("%d",&n);
while(n--){
scanf("%d%d%d",&a,&b,&c);
sum[0]+=arr[a*9+b*3+c][0];
sum[1]+=arr[a*9+b*3+c][1];
sum[2]+=arr[a*9+b*3+c][2];
}
printf("%d\n%d\n%d\n",sum[0],sum[1],sum[2]);
return 0;
}
用二维数组打表。