跑得快计数程序

来源:互联网 发布:智能电视选购 知乎 编辑:程序博客网 时间:2024/04/29 06:06

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

310 1 1 130 12 12 1212 0 2 312 0 12 620 1 2 31 0 1 1
Sample Output
0 0 0 012 28 -25 -152 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;}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 晚上左转逆行了怎么办 鼓浪屿船票买不到怎么办 信用卡逾期房贷批不下来怎么办 房贷逾期还款怎么办 网被垄断了怎么办? 百度搜索网页打不开怎么办? 原生家庭很糟糕怎么办 白色油漆变黄怎么办 白油漆家具泛黄怎么办 交通电子眼60分怎么办 被公司罚款了怎么办 公司对员工罚款怎么办 高一军训洗漱怎么办 吃精神病药发胖怎么办 神经病人不吃药怎么办 事故全责不赔钱怎么办 吃精神药物发胖怎么办 郑州出院限号怎么办 林场改革森林消防怎么办 网络课没有看完怎么办 福建省会计证未换怎么办 国税地税登记后怎么办 网上发票领不了怎么办 合肥餐饮怎么办环评 地税财务报表上传错误怎么办? 平安体检卡过期怎么办 到医院挂号后怎么办 一吹风就头痛怎么办 平安口袋e怎么办离职 学员学分卡号怎么办 华医网注册错了怎么办 医师继续教育学分不够怎么办 执业医师学分卡怎么办 护士学分5年没办怎么办 华医网职称录入错误怎么办 在北京没有学历怎么办 继续教育证书丢了怎么办 继续教育证丢了怎么办 继续教育档案丢了怎么办 现在会计证丢了怎么办 初级准考证丢了怎么办