HNU-火星人足球赛

【问题描述】

       火星人足球赛的比赛规则与地球人的比赛规则有些非常相似,比如严重犯规,将被给予黄牌警告,特别严重的犯规,将给予红牌直接罚下,如果有人得到第2张黄牌,则自动获得红牌罚下,比赛同样采取主客场制。

       与地球人足球赛不同的是,火星人足球赛每队可以上场的人数不会固定为11人,可以多个人,比赛时间也会更长一些。

       比赛时的裁判员是机器人,判罚非常严厉,如果有人获得红黄牌,机器人裁判将自动记录当时的情况。       

【输入形式】

       输入的第一行为主队队名,第二行为客队队名,队名的长度不超过20个字符。

       第三行为一个整数 n (0 ≤ n ≤ 90) ,表示得到红黄牌的犯规次数。

       接下来的n行,每行包含用空格分隔的4个部分,表示犯规的情况:

    • 首先为一个整数,表示犯规的时间(分钟)

    • 接着为一个字符"h"或"a",如果为"h",表示该张牌会给到主队球员,否则会给到客队球员

    • 接下来为球员编号m  (1 ≤ m ≤ 99)

    • 接下来为一个字符"y"或"r",如果为"y",表示为黄牌,否则为红牌

       不同球队的球员可能有相同的号码,在同一球队球员的号码不相同,犯规记录按时间顺序排列。

【输出形式】

       输出按时间顺序排列的获得红牌的记录,如果时间相同,则主队排在前面,如果同一时间同一球队有多人获得红牌,则编号大的排在前面。每个红牌一行,包含3个部分:球员所属球队的名字、犯规球员编号、获得红牌时间。

      如果全场比赛无红牌,输出"No Red Card"
【样例输入】

MC
CSKA
9
28 a 3 y
62 h 25 y
66 h 42 y
70 h 25 y
77 a 4 y
79 a 25 y
82 h 42 r
89 h 16 y
90 a 13 r

【样例输出】

MC 25 70
MC 42 82
CSKA 13 90

【样例说明】
【评分标准】

#include<iostream>
#include<string>
using namespace std;
struct Record//犯规记录
{int time;char team;int number;char color;
};
struct Red//红牌犯规记录
{char team;int number;int time;
};
int main()
{string str1,str2;//用于存储参赛双方的队名cin>>str1;cin>>str2;int n;cin>>n;Record member[n];Red num[n];//声明的长度n为红牌记录的最多次数int t=0;for(int i=0;i<n;i++){cin>>member[i].time>>member[i].team>>member[i].number>>member[i].color;}int f=0;for(int j=0;j<n;j++){if(member[j].color=='y'){for(int k=0;k<j;k++)//检索该名队员之前是否出现过黄牌犯规记录而构成红牌犯规{if(member[j].number==member[k].number&&member[j].team==member[k].team){num[t].team=member[j].team;num[t].number=member[j].number;num[t].time=member[j].time;t++;f=1;}}}else if(member[j].color=='r')//红牌犯规直接出局{num[t].team=member[j].team;num[t].number=member[j].number;num[t].time=member[j].time;t++;f=1;}}if(f==0) {cout<<"No Red Card"<<endl;}else{for(int k=0;k<t;k++)//处理同时间同队伍的红牌犯规成员记录按编号大到编号小的顺序输出、主队在前副队在后{for(int c=k+1;c<t;c++){Red temp;if(num[k].time==num[c].time){if(num[k].team==num[c].team&&k<t&&num[k].number<num[c].number){temp=num[k];num[k]=num[c];num[c]=temp;}else if((num[k].team=='h'&&num[c].team=='a'&&k>t)||(num[k].team=='a'&&num[c].team=='h'&&k<t)){temp=num[k];num[k]=num[c];num[c]=temp;}}}}for(int i=0;i<t;i++){if(num[i].team=='h') {cout<<str1<<' '<<num[i].number<<' '<<num[i].time<<endl;}else if(num[i].team=='a') {cout<<str2<<' '<<num[i].number<<' '<<num[i].time<<endl;}}}return 0;
}

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

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

相关文章

【哈希】两数之和

题目&#xff1a;https://leetcode.cn/problems/two-sum/description/?envTypestudy-plan-v2&envIdtop-100-liked class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map new HashMap<>();for (int i 0; i < nums.l…

Oracle常见内置程序包的使用Package

Oracle常见内置程序包的使用 点击此处可跳转至&#xff1a;Oracle的程序包(Package)&#xff0c;对包的基础进行学习常见内置程序包的使用Package1、DBMS_OUTPUT包2、DBMS_XMLQUERY包3、DBMS_RANDOM包4、UTL_FILE包5、DBMS_JOB包6、DBMS_LOB包7、DBMS_SQL包8、DBMS_LOCK包9、DB…

【网络】传输层 -- 详解IP协议及IP协议的分片原理

目录 一、IP协议基本概念二、IP协议头格式1、报头和有效载荷如何分离2、有效载荷是如何向上交付&#xff08;分用&#xff09;的3、具体IP报头 三、网段划分1、什么是网段划分2、如何进行子网划分&#xff1f;再次理解子网划分及如何划分 3、私有IP地址和公网IP地址4、路由 四、…

虚拟机备份数据自动化验证原理

备份数据成功备份下来了&#xff0c;但是备份数据是否可用可靠&#xff1f;对于这个问题&#xff0c;最好最可靠的方法是将备份数据实际恢复出来验证。 但是这样的方法&#xff0c;不仅费时费力&#xff0c;而且需要随着备份数据的定期产生&#xff0c;还应当定期做备份数据验…

opencv知识库:利用cv2.resize()函数进行图像缩放

引言 在numpy知识库&#xff1a;深入理解numpy.resize函数和数组的resize方法中&#xff0c;小编较为详细地探讨了numpy的resize函数背后的机理。从结果来看&#xff0c;numpy.resize函数并不适合对图像进行缩放操作。而opencv中的resize函数虽然和numpy的resize函数同名&…

c语言中 , x++ 和 ++x的区别

一 c语言中 , x 和 x的区别 x 和 x 是 C 语言中的自增运算符&#xff0c;它们的区别在于它们的执行时机和返回值&#xff1a; 1. x (后缀自增): 先使用变量的值&#xff0c;然后再将变量的值加 1。这意味着&#xff0c;如果你在一个表达式中使用了 x&#xff0c;那么该表达式…

Java面试题(每天10题)-------连载(41)

目录 Spring篇 1、什么是Spring框架&#xff1f;Spring框架主要有哪些模块&#xff1f; 2、使用Spring框架能带来哪些好处&#xff1f; 3、什么是控制反转&#xff08;IOC&#xff09;&#xff1f;什么是依赖注入&#xff1f; 4、解释下Spring中的IoC? 5、BeanFactory和…

基于eBPF监测DOS攻击

本文实现一个简单的eBPF模块代码示例&#xff0c;用于监测可能的DOS攻击。在此示例中&#xff0c;我们使用eBPF的kprobe功能来监视netif_receive_skb系统调用&#xff0c;以在接收网络数据包之后执行一些检查。 c #include <linux/bpf.h> #include <linux/if_ether.h…

Fiddler抓包工具之fiddler设置弱网测试

弱网测试 概念&#xff1a;弱网看字面意思就是网络比较弱&#xff0c;我们通称为信号差&#xff0c;网速慢。 意义&#xff1a;模拟在地铁、隧道、电梯和车库等场景下使用APP &#xff0c;网络会出现延时、中断和超时等情况。 Fiddler弱网测试流程&#xff1a; 一、限速操作…

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602移屏显示应用

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602移屏显示应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器LCD1602简单介绍IIC通信简单介绍掉电保…

使用Python免费调用通义千问大模型

Qwen-72b开源模型 模型的主要用途是预测或描述一个系统或现象的行为模式。它可以帮助人们更好地理解这个系统或现象&#xff0c;例如预测股市变化、天气预报、地震预警、交通流量等。模型也常用于设计和优化产品和工艺。在科学研究中&#xff0c;模型也是一种方法&#xff0c;用…

仿京东淘宝商品列表筛选组件:实现一个高效的侧边栏弹框筛选功能

仿京东淘宝商品列表筛选组件&#xff1a;实现一个高效的侧边栏弹框筛选功能 一、引言 随着电子商务的快速发展&#xff0c;用户体验成为了竞争的关键因素。在众多的电商网站中&#xff0c;如京东和淘宝&#xff0c;商品列表筛选功能为用户提供了便捷的途径来找到心仪的商品。本…

使用JSP+Servlet+MySQL实现登录注册功能

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…

【电路笔记】-并联电阻

并联电阻 文章目录 并联电阻1、概述2、并联电阻示例13、并联电阻示例24、并联电阻电路中的电流5、并联电阻器示例36、总结 当电阻器的两个端子分别连接到另一个或多个电阻器的每个端子时&#xff0c;电阻器被称为并联连接在一起。 1、概述 与之前的串联电阻电路不同&#xff0…

神经网络 模型表示2

神经网络 模型表示2 使用向量化的方法会使得计算更为简便。以上面的神经网络为例&#xff0c;试着计算第二层的值&#xff1a; 我们令 z ( 2 ) θ ( 1 ) x {{z}^{\left( 2 \right)}}{{\theta }^{\left( 1 \right)}}x z(2)θ(1)x&#xff0c;则 a ( 2 ) g ( z ( 2 ) ) {{a}…

动态规划 | 打家劫舍1、2、3

198. 打家劫舍 https://leetcode.cn/problems/house-robber/description/ dp[i] 表示 考虑到下标为 i &#xff08;包括i&#xff09;的房子&#xff0c;可以偷到的最大金额。 dp[i] 有两个状态&#xff0c;分别是 偷 和 不偷。 偷&#xff0c;则需要考虑前 i-2 天的最大金额…

Linux常见指令大全及周边知识:让你的命令行变得更加强大

文章目录 目录 文章目录 前言 一&#xff0c;Linux操作系统是啥&#xff1f; 二&#xff0c;Linux操作系统具有以下特点 三&#xff0c;指令的学习 1&#xff0c;指令是什么&#xff1f; 2&#xff0c;ls 指令及其常用的衍生指令&#xff1a; 周边知识&#xff1a; ls…

高效配置Python应用:使用Hydra探索新视野

简介&#xff1a;Python开发中经常面临如何管理大量配置参数的困扰Python库 - Hydra&#xff0c;它由Facebook研究团队开发&#xff0c;并旨在帮助开发者简化应用配置的复杂性。作为一个开源Python库&#xff0c;设计用来帮助开发者更高效地创建、组织和管理复杂的应用程序配置…

async/await的实现原理(手动实现)

为什么要引入async/await操作符&#xff1f; 对于js的异步编程场景&#xff0c;无论是使用xhr回调还是promise回调&#xff0c;当异步操作过多并且每个动作之间存在依赖关系&#xff08;即需要串行执行&#xff09;时&#xff0c;代码的可读性和维护性会变得很差。async/await…

华为OD机试真题-两个字符串间的最短路径问题-2023年OD统一考试(C卷)

题目描述: 给定两个字符串,分别为字符串A与字符串B。例如A字符串为ABCABBA,B字符串为CBABAC可以得到下图m*n的二维数组,定义原点为(0, 0),终点为(m, n),水平与垂直的每一条边距离为1,映射成坐标系如下图。 从原点(0, 0)到(0, A)为水平边,距离为1,从(0, A)到(A, C)为垂…