ZOJ 1057 Undercut(简单模拟)
2013-08-15 03:31
344 查看
[b]Undercut[/b]
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=57
题目大意:a card game,two player,每个player有n张牌,按顺序出牌,如果2张牌的点数相等,2个player都不得分;如果2张牌点数相差1,点数大的player得分为2张牌的点数和;如果2张牌的点数相差超过1,点数大的player得分为点数大的牌的点数;特殊情况,如果2张牌的点数分别为1和2,持2的player得分为6而不是3;给出2个player各n张牌的点数,要求输出每个player的得分情况
代码如下:
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=57
题目大意:a card game,two player,每个player有n张牌,按顺序出牌,如果2张牌的点数相等,2个player都不得分;如果2张牌点数相差1,点数大的player得分为2张牌的点数和;如果2张牌的点数相差超过1,点数大的player得分为点数大的牌的点数;特殊情况,如果2张牌的点数分别为1和2,持2的player得分为6而不是3;给出2个player各n张牌的点数,要求输出每个player的得分情况
代码如下:
# include<stdio.h> # include<string.h> int main(){ bool first = true; int n,i; int a[20],b[20]; while(scanf("%d",&n) && n){ if(!first) puts(""); for(i=0; i<n; i++) scanf("%d", &a[i]); for(i=0; i<n; i++) scanf("%d", &b[i]); int suma =0 ,sumb=0; for(i=0; i<n; i++){ if(a[i]==1 && b[i]==2){ suma += 6; continue; } if(a[i]==2 && b[i]==1){ sumb += 6; continue; } if(a[i]==b[i]) continue; if(a[i] - b[i] == 1){ sumb += (a[i]+b[i]); continue; } if(b[i] - a[i] == 1){ suma += (a[i]+b[i]); continue; } if(a[i]>b[i]) suma += a[i]; if(b[i]>a[i]) sumb += b[i]; } printf("A has %d points. B has %d points.\n",suma,sumb); first = false; } return 0; }
相关文章推荐
- ZOJ-3594 Sexagenary Cycle【简单模拟】
- ZOJ 3827 简单数学推导+简单模拟
- ZOJ 1057 Undercut
- zoj 2164 Hanafuda Shuffle简单模拟(2)
- ZOJ-1057-Undercut
- ZOJ 3778 Talented Chef(找规律,模拟计算,11届ACM省赛,简单)
- zoj 3697 恶心模拟 +简单DP
- zoj1494 暴力模拟 简单数学问题
- ZOJ 3804 YY's Minions (简单模拟)
- ZOJ 3542 2011大连现场赛D题(简单模拟)
- ZOJ--1057:Undercut
- ZOJ1057 Undercut
- ZOJ1057 Undercut
- zoj 1057 Undercut 水题
- ZOJ 3804 YY's Minions(简单模拟)
- zoj 2417 Lowest Bit(简单的模拟)
- ZOJ Problem Set - 1057||Undercut
- ZOJ - 3948 Marjar Cola 简单模拟
- ZOJ 3220 Killing Streak(简单模拟)
- ZOJ 3542 2011大连现场赛D题(简单模拟)