本文主要是介绍跑得快计数程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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;
}
这篇关于跑得快计数程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!