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;
}