跑得快计数程序

Problem description
  跑得快纸牌游戏深受大家的喜爱,但是也有一个不好之处,就是计数有时比较麻烦,所以就要你写一个程序来计算最终结果。 
题目描述: 四个人打跑得快,每个人有12张牌,最先出完牌的人就是获胜者,其他人手上还剩几张牌就按每张牌0.2元计算输的钱,为了好计算就向0.5取整,也就是说0.4就算0.5,0.2就算0,其他同理可得。但是也有一个特殊情况,就是没出一张牌就算输6元。

Input
  首先是一个整数t,表示有t组数据,每组数据首先是一个整数N(1<=N<=100),表示进行了N局,接下来N行,每一行有四个整数,分别表示四个人剩余牌的数量,剩余牌为0的就是胜利者。 
Output
  对于每组数据,输出四个数以空格隔开,末尾没有多余空格,分别表示各自输赢的值*2(保证输出是一个整数。) 
Sample Input
3
1
0 1 1 1
3
0 12 12 12
12 0 2 3
12 0 12 6
2
0 1 2 3
1 0 1 1
Sample Output
0 0 0 0
12 28 -25 -15
2 0 -1 -1
//标程:
#include<iostream>
#include<cstdio>
using namespace std;
int c[6], p[6];
void f(int x)
{
    for(int i = 1; i <= 4; ++ i)
	{
		if(i != x)
		{
			if(c[i] == 12)
			{
				p[x] += 12;
				p[i] -= 12;
			}
			else
			{
				 int tmp = c[i] % 5;
				 int k = c[i] / 5;
				 p[x] += k*2;
				 p[i] -= k*2;
				 if(tmp == 2 || tmp == 3)
				 {
					 p[x] += 1;
					 p[i] -= 1;
				 }
				 if(tmp == 4)
				 {
					 p[x] += 2;
					 p[i] -= 2;
				 }
			}
		}
	}
}
int main()
{
//	freopen("a.txt","r",stdin);
    int t, n, i;
     cin >> t;
	 while(t --)
	 {
		 cin >> n;
		 for(i = 1; i <= 4; ++ i) 
			 p[i] = 0;
		 while(n --)
		 {
			 cin >> c[1] >> c[2] >> c[3] >> c[4];
			 for(i = 1; i <= 4; ++ i)
				 if(c[i] == 0)  f( i );
		 }
		 cout << p[1] << " " << p[2] << " " << p[3] << " " << p[4] << endl;
	 }
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值