C++,Lutece 25 点球大战(penalty)

news/2025/3/28 15:33:02/文章来源:https://www.cnblogs.com/l25428455/p/18791411
/*
Migrated from Lutece 25 点球大战(penalty)
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。
先罚球的队伍的信息在上面,后罚的在下面。最右边标上两队的比分。
具体格式参考样例输出。注意如果一轮点球只罚了一个,则后面那个点球对应的地方写上-。
*/
#include <iostream>
#include <string>
#include <vector>
int main(){int n;std::vector<std::string> ans;while(std::cin>>n){std::cin.ignore();//清除输入流中的换行符if(n==0) break;std::string str;int score1 = 0,score2 = 0;std::string title{""},team1{""},team2{""};bool team = true;for(int i = 1; i<=n; ++i){std::getline(std::cin,str);//getline会取出输入流中的换行符,但不会将换行符放入字符串中if(team)title+=std::to_string((i+1)/2)+" ";//不能查找"no good" , 因为球员名字中可能包含"no good"if(str[str.size()-8]==' '&&str[str.size()-7]=='n'&&str[str.size()-6]=='o'){if(team){team1+="X ";}else{team2+="X ";}}else{if(team){team1+="O ";++score1;}else{team2+="O ";++score2;}}team = !team;}if(!team){team2+="- ";}title+="Score";team1+=std::to_string(score1)+" ";team2+=std::to_string(score2)+" ";ans.push_back(title);ans.push_back(team1);ans.push_back(team2);}for(int i = 0;i<ans.size()-1;++i){std::cout<<ans[i]<<std::endl;}std::cout<<ans[ans.size()-1].substr(0,ans[ans.size()-1].size()-1)<<std::endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/905467.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue+leaflet示例:图层管理控件样式优化(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

2025西安交大集训Day4:单调栈,单调队列,线段树

2025西安交大集训Day4:单调栈,单调队列,线段树 引入 何为单调栈?顾名思义,单调栈即满足单调性的栈结构。与单调队列相比,其只在一端进行进出。 为了描述方便,以下举例及伪代码以维护一个整数的单调递增栈为例。 过程 插入 将一个元素插入单调栈时,为了维护栈的单调性,需要…

日事清甘特图制作工具:一键生成,精准管理项目周期

还在为制作甘特图而焦虑吗?别担心,日事清甘特图重磅登场,轻松帮你完美化解难题,让复杂任务规划变得简单高效!在工作中,我们很多岗位都经常需要对项目进度进行追踪,例如人事经理需要要追踪招聘进度或员工培训计划, 项目经理负责监督项目的各个阶段以保证按计划执行, 软…

网站自动备份同步工具,自动备份同步工具有哪些?

网站自动备份同步工具是保障网站数据安全的关键,需兼顾实时性、可靠性、易用性。以下是分场景推荐的工具及部署方案:一、工具分类推荐80KM备份软件 功能:支持多种备份方式,如系统备份、磁盘备份、文件备份等,支持定时备份。 步骤:管理端点新增,不管选择从管理端备份到客…

智慧运维如何赋能现代医院?看某中西医结合医院的数字化转型之路

在医疗信息化浪潮中,某中西医结合医院作为一家集医疗、教学、科研于一体的三甲医院,始终走在创新前沿。面对业务系统庞杂、跨部门协作效率待提升等挑战,医院携手采和科技,以“智慧运维”为核心理念,开启了一场数字化转型的深度实践。 痛点破局:从“人找服务”到“服务找人…

day:29 断点

一、断点介绍 1.为什么要打断点呢? 接口测试可以不需要管前端的,主要测后端的功能 2.断点的作用: 1.开发人员,调试,出错后在某个位置打断点调试代码; 2.测试人员,测试,绕过前端的限制,测试后端的反应; 3.测试人员,构造数据,设置断点可篡改请求和返回的数据包。根据测…

UE5--002--EnhancedInput

1. IA_Pause 输入动作2. IMC_Default 输入映射上下文3. BP_FirstPersonCharacter蓝图3. 1 给PlayerController动态配置MappingContext3. 2 事件响应4. BP_FirstPersonGameMode蓝图4. Project Settings

信用消费的血栓问题-逾期订单诊断指南

在信用消费场景中,用户最怕看到的两个字莫过于“逾期”,但现实中,有相当一部分逾期记录源于系统协同中的技术误差。在本篇文章中我将揭示逾期订单的形成机制,并给出一些常见问题的解决方式,希望能帮助到大家。在信用消费场景中,用户最怕看到的两个字莫过于“逾期”——它…

Linux软件无法获取IGPV3的udp数据问题

问题 tcpdump能获取到数据,但是其他进程(内部获取udp)无法获取此udp数据 源是来自IGPV3的组播源,添加之前已经试过加入组播,但是还是无法接收到数据 解决 使用命令 systcl -a |grep rp_filter发现设备开启了严格的反向过滤关闭 net.ipv4.conf.all.rp_filter和net.ipv4.co…

如何通过接口测试驱动PLM效能提升?2025年禅道等工具实践白皮书

一、PLM系统测试的行业痛点与转型机遇 全球PLM市场规模预计2025年突破500亿美元,但企业调研显示,73%的PLM系统测试问题集中在接口兼容性与数据流断层。某汽车零部件厂商因BOM变更未触发ERP同步,导致生产线停摆4小时损失超千万。这暴露出传统测试方法的三大致命短板:数据孤岛…