点球大战

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2556    Accepted Submission(s): 1009

Problem Description
在足球比赛中,有不少赛事,例如世界杯淘汰赛和欧洲冠军联赛淘汰赛中,当比赛双方经过正规比赛和加时赛之后仍然不分胜负时,需要进行点球大战来决定谁能够获得最终的胜利。点球大战的规则非常简单,两方轮流派出球员罚点球,每方各罚5个。当5轮点球结束以后如果仍然不分胜负,则进入一轮定胜负的阶段。两方各派一名球员罚点球,直到有一方罚进而另一方没有进为止。
在北美职业冰球联赛中,也有点球大战。与足球的规则不同的是,它只先罚3轮点球,随后就进入一轮定胜负的阶段,而其他的规则完全一样。
在本题中,输入将给出每次点球是否罚进,而你的任务则是输出一个“比分板”。

Input
输入包含多组数据。每组数据的第一行包含一个整数N(1<=N<=18),表示双方总共罚了多少个点球,N=0表示输入结束。随后有N行,每行是一个如下形式的字符串:
XXXX good:表示这个点球罚进
或者XXXX no good:表示这个点球没有罚进
其中XXXX表示球员名字(全部由字母和空格组成,保证不会出现歧义)
每一行保证不超过100个字符。
XXXX和good以及XXXX和no、no和good之间保证有且只有1个空格。
good、no good都是小写。本题是大小写相关的。
数据不保证点球大战一定结束,也不保证在结束以后立即结束这组数据(即:不用判断点球大战是否结束,只用把罚进的点球往比分上加即可)。
Output
对每组数据,输出一个比分板。一个点球如果罚进,则在对应的地方标上’O’,如果没有进则标上’X’。先罚球的队伍的信息在上面,后罚的在下面。最右边标上两队的比分。具体格式参考样例输出。注意如果一轮点球只罚了一个,则后面那个点球对应的地方写上’-’。
Sample Input
6 Riise good Ballack good Gerrard no good Lampard no good Fernando Torres good Malouda good 9 Christiano Ronaldo no good Messi no good Giggs good Abidal no good Carrick good Ronaldinho good Rooney good Henry no good Tevez good 0
Sample Output
1 2 3 Score O X O 2 O X O 2 1 2 3 4 5 Score X O O O O 4 X X O X - 1提示: 空格数要和样例输出一样,否则很可能会被判为“格式错误”(Presentation Error)。
挺好的题,一遍就过了,就是调试了 半个小时,累死宝宝了。
附代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char c[20][1100],s[1100];
int i,j,k,l,m,n,t,a[100],b[100],cnt;
int ac(char s[])//求出输入的字符串里边单数第二个空格在哪,并返回地址,因为
{for(j=l-1;j>=0;j--)//题目说了,没个单词之间只有一个空格 {if(s[j]==' ')//如果第二个空格下一个字符是n就是没有进 cnt++;if(cnt==2)//如果输入的字符只有一个空格,也可以 break;}return j;
}
int main()
{while(scanf("%d",&n),n){getchar();//吸收输入的换行 memset(a,0,sizeof(a));memset(b,0,sizeof(b));for(i=1;i<=n;i++){int count=0;gets(s) ;l=strlen(s);cnt=0;if(i%2)//第一队 {if(s[ac(s)+1]!='n')a[(i-1)/2]=1;}else//第二队 {if(s[ac(s)+1]!='n')b[i/2-1]=1;}}int ans=0;int sum=0;for(i=1;i<=(n+1)/2;i++)printf("%d ",i);printf("Score\n");for(i=0;i<(n+1)/2;i++)if(a[i]){printf("O ");ans++;}elseprintf("X ");printf("%d\n",ans);for(i=0;i<n/2;i++)if(b[i]){printf("O ");sum++;}elseprintf("X ");if(n%2)//如果n为奇数,说明第二队最后一个球,一定没有点 printf("- ");printf("%d\n",sum);}return 0;
}

杭电2539点球大战相关推荐

  1. 杭电acm2151题java的解法,杭电ACM题型分类

    杭电ACM题型分类 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.1032.1037.1040.1048.1 ...

  2. hdoj杭电问题分类

    杭电上的题虽然多,但是一直苦于找不到问题分类,网页都是英文的,所以平时做题也没怎么看,今天仔细一看,问题分类竟然就在主页....做了那么久的题居然没发现,表示已经狗带..不要笑,不知道有没有像我一样傻 ...

  3. 杭电ACM(HDUOJ)试题分类

    杭电ACM试题分类 第一篇 1001 这个就不用说了吧                      1002 简单的大数                            1003 DP经典问题,最 ...

  4. 杭电acm第2304题答案c语言,【转】杭电ACM试题分类

    注:网上搜的 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 ...

  5. 杭电ACM题目类型整理

    版权声明:(╯3╰) 转载请注明: http://blog.csdn.net/bat67 杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 10 ...

  6. 【杭电ACM】1097 A hard puzzle

    [杭电ACM]1097  A hard puzzle http://acm.hdu.edu.cn/showproblem.php?pid=1097 先用int手写了算法结果竟然wrong answer ...

  7. 【ACM】杭电OJ 1106 函数atoi

    函数atoi是把字符串转化成整数的函数,头文件为 #include "stdlib.h" e.g. 运行环境:Dev-C++ 5.11 杭电1106 调用了sort函数,运行的时间 ...

  8. 【ACM】杭电OJ 2037

    题目链接:杭电OJ 2037 先把b[i]进行排序,然后,b[i]与a[i+1]进行比较. #include <iostream> #include <cstdio> #inc ...

  9. 【ACM】杭电OJ 2020(排序)

    题目链接:杭电OJ 2020 排序可以有冒泡排序,选择排序,或者直接调用函数. 下面是选择排序: #include <stdio.h> #include <math.h> in ...

最新文章

  1. 硬核!我的导师手写129页毕业论文,堪比打印!
  2. Java:定时启动线程
  3. stl_config.h基本宏
  4. 北斗导航 | RDSS短报文之数据解压缩算法:LZ77
  5. Hibernate初探(二)
  6. [转]Oh My Zsh,安装,主题配置
  7. java动作监听退出程序_监听获取程序退出事件(Linux、Windows、Java、C++)
  8. 使用聚集函数汇总数据
  9. python模块介绍二。
  10. 再读红宝书(第四版)第二章 html 中的 javascript
  11. Mysql通过sql添加字段
  12. 音响在线测试软件,汽车音响调音在线大师班(1):调音第一步,RTA检测播放表现...
  13. 实现单点登录(SSO)的三种方式
  14. 【推荐系统】:协同过滤和基于内容过滤概述
  15. 学习python的第4天
  16. 我不是学计算机专业的,想转行做程序员,怎么办?
  17. 《格鲁夫给经理人的第一课》读书笔记
  18. PDF怎么修改,如何删除PDF水印
  19. 一款极简聊天应用,比较完整,略好看
  20. mysql自定义函数示例代码,以及属性介绍

热门文章

  1. C++ Gui Qt4 书籍代码在VS2008上正确编译使用
  2. DICOM协议资料汇集
  3. 下一个十年:练好内功被集成的弹性计算
  4. java B2B2C springmvc mybatis电子商城系统:分布式配置中心
  5. ERROR 1820 (HY000): You must reset your password
  6. Azure ARM 上传自定义镜像
  7. this is a test
  8. edge 浏览器中数字显示为链接
  9. swagger ui 值类型形参加文字注释
  10. GridView中使用CheckBox