第二届蓝桥杯国际赛第一题-猜拳

版权声明:本人菜鸟一只,如文章有错误或您有高见,请不吝赐教 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;
} 

用二维数组打表。

猜你喜欢

转载自blog.csdn.net/qq_41138935/article/details/83786105