瑞安市信息学竞赛复赛前练习2 1754 Problem D看比赛 题解

问题 D: 看比赛

时间限制: 1 Sec  内存限制: 128 MB

题目描述

比赛开始了,KK 准备记录下每一个重要的事件:红黄牌和进球。
假设只有A 队和B队,每队的号码是1~11 号。
进球事件的表示:Goal A 表示A 进球,Goal B 相反
红牌事件:RedCard A 1表示A队1 号被红牌罚下
黄牌事件:YellowCard B 2表示B队2号被黄牌警告
注意,一个人如果被警告两次就将被罚下(相当于一张红牌)。
现在,要输出的是两队的比分、被罚下的名单和被警告的名单。

输入

第一行,一个整数n,表示重要事件的个数(n<1000)
之后n 行,每行一个事件,如果第一个词语是Goal,之后输入
进球的编号;如果第一个词语是 RedCard 或YellowCard,那么之后
输入队伍和号码。

输出

第一行,格式为A(A 的得分):(B 的得分)B
第二行,输出”SentOff:”
之后若干行,每行一个 A 或B,一个号码,表示被罚下的人,之
间用空格隔开,规定先 A 后B,按号码大小排序。
下一行,输出”Warning:”
之后若干行,每行一个 A 或B,一个号码,表示被警告的人,之
间用空格隔开,规定先 A 后B,按号码大小排序。

样例输入

8
Goal A
RedCard A 4
Goal B
YellowCard B 8
Goal B
YellowCard B 8
YellowCard B 10
Goal B 

样例输出

A(1):(3)B
SentOff:
A 4
B 8
Warning:
B 10 

提示

【样例解释1】
B 队进了 3 个球,A 队进了一个。A 队 4 号被罚下,B 队 8 号累
积两张黄牌下场,B队的10 号被黄牌警告一次

首先呢,通过它给我们的样例,可以清楚地看出来这是一道暴力大水题。可是有一点要注意的是,它的字符串读入是带空格的。在去年上级复赛的时候,就是由于这一点导致我的IDE崩溃。就在前几天,老师告诉我使用string+char(+int)就可以了。感谢老师的启发,本人终于做出了我深恶痛疾的模拟题。然后提醒一下:SentOff和Warning的后面是没有空格的!!!就是这一点,让萌新崩溃。

好,上代码:

#include<bits/stdc++.h>
using namespace std;
int n;
int a[12],b[12];
int A,B,tt,a1,b1,a2,b2;
string k;
char t;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>k;
        if(k=="Goal")
        {
            cin>>t;//空格会忽略掉
            if(t==‘A‘) A++;
            else B++;
        }
        else
        {
            if(k[0]==‘R‘)
            {
                cin>>t;
                cin>>tt;
                if(t==‘A‘) a[tt]-=2;
                if(t==‘B‘) b[tt]-=2;//大于
            }
            if(k[0]==‘Y‘)
            {
                cin>>t;
                cin>>tt;
                if(t==‘A‘) a[tt]-=1;
                if(t==‘B‘) b[tt]-=1;
            }
        }
    }
    for(int i=1;i<=11;i++) if(a[i]<-2||a[i]==-2) a1++;
    for(int i=1;i<=11;i++) if(b[i]<-2||b[i]==-2) b1++;
    for(int i=1;i<=11;i++) if(a[i]==-1) a2++;
    for(int i=1;i<=11;i++) if(b[i]==-1) b2++;
    cout<<"A("<<A<<"):"<<"("<<B<<")B"<<endl;
    cout<<"SentOff:"<<endl;
    if(a1>0)
    {
        for(int i=1;i<=11;i++) if(a[i]<-2||a[i]==-2) cout<<"A "<<i<<" "<<endl;
    }
    if(b1>0)
    {
        for(int i=1;i<=11;i++) if(b[i]<-2||b[i]==-2) cout<<"B "<<i<<" "<<endl;
    }
    cout<<"Warning:"<<endl;
    if(a2>0)
    {
        for(int i=1;i<=11;i++) if(a[i]==-1) cout<<"A "<<i<<" "<<endl;
    }
    if(b2>0)
    {
        for(int i=1;i<=11;i++) if(b[i]==-1) cout<<"B "<<i<<" "<<endl;
    }
    return 0;
}

原文地址:https://www.cnblogs.com/O52LuoTianYi/p/11399126.html

时间: 2024-10-20 04:15:17

瑞安市信息学竞赛复赛前练习2 1754 Problem D看比赛 题解的相关文章

沙盘游戏(2017绍兴市第十五届少儿信息学竞赛复赛试题)

沙盘游戏 Ivy是如此地喜欢编程,以至于在面对游戏时也是如此.在沙盘游戏中有一个巨大的方形沙盘(长方形或者正方形),该沙盘被分隔成边长为1的小方格,每个小方格内有一个整数.沙盘玩家需要在沙盘中圈出一个方形(长方形或者正方形都可以)的区域(必须沿着小方格的边界划线,不能穿过小方格的内部),目标是争取被圈区域内的整数之和最大.为了描述方便,Ivy把这个沙盘用n*m个整数来表示,每个整数所在位置表示沙盘中一个边长为1的小方格.Ivy现在需要编程解决这样一个问题:在n*m(n行m列)个整数中选择一个x*

算法艺术与信息学竞赛书摘

<算法艺术与信息学竞赛>这本书我详细看了1.1.1.2.1.3,之后就看得不是很懂了,所以还是把摘要写出来,方便让我知道到底能学到什么. 第一章 算法与数据结构 “数据结构+算法=程序设计” 从理论分析和实际应用两方面阐述了算法与数据结构的基本知识. 1.1 概括的叙述了算法.数据结构.以及计算理论的一些概念. 1.2从实例出发,概括的介绍了一些基本算法,包括美剧.贪心.递归.递推. 1.3介绍基本数据结构,包括线性表队列.栈.树.二叉树.以及图遍历与拓扑排序. 1.4介绍了一些实用数据结构,

陕西省第九次大学生高等数学竞赛复赛试题

参考解答见 家里蹲大学数学杂志第6卷第430期_陕西省第九次大学生高等数学竞赛复赛试题参考解答

最小割模型在信息学竞赛中的应用___读后的收获

在看了Amber的<最小割模型在信息学竞赛中的应用>后感觉到了自己的智障-- 我还是按照目录来,其实第一个子目录中我收获最大的还是01分数规划的内容. 01分数规划:给定n个条件,在其中选取一些条件,使得要求的目标函数达到最值. 通俗一点说:给定两个数组,a[i]表示选取i的收益,b[i]表示选取i的代价.如果选取i,定义x[i]=1否则x[i]=0.每一个物品只有选或者不选两种方案,求一个选择方案使得R=sigma(a[i]*x[i])/sigma(b[i]*x[i])取得最值,即所有选择物

美梦1(JSOI2014,算法艺术与信息学竞赛)

[问题描述] 这天晚上,约翰做了个奇怪的美梦.他拥有了分别分布在N座高高低低的山上的N个池塘,N座山连成一条直线,从左往右第i座山的高度是Hi.池塘中的鱼都是他请专家运用科学的方法专门养殖的,为了保护每个池塘的生态环境,他现在要在这N座山上建造若干个看护点.约翰是个很节约的人,在第i座山建造看护点的花费为Ci.假设在第i座山建造一个看护点,则往左或者往右第一座不比这座山低的山将挡住看护的视线.譬如说: {Hi} = {1 4 4 5 7 2}表示第一座山高度为1,第二座山高度为4... 如果在第

国王的游戏(华东师范大学-信息学竞赛学教案)

信息学竞赛学教案 [引入问题]:国王的游戏 恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这n位大臣排成一排,国王站在队伍的最前面.排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果.国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏

信息学竞赛一本通提高版AC题解—例题1.1活动安排

书中代码有误.书中为sort(a+1,a+n+1,Cmp). // // Created by yuxi on 19-1-13. // /* * * <信息学竞赛一本通-提高版>全部AC解答及解释 * * 第一部分 基础算法 * 第一章 贪心算法 * 例题1 活动安排 * */ #include <iostream> #include <algorithm> #include <fstream> #include <string> using n

【转】对信息学竞赛中调试方法的建议

信息学之于其他竞赛学科的不同,就在于需要通过写程序来表达自己的思维和想法.如何尽可能又快又好地调试程序,成了我们必须要思考的问题.相信很多同学都有过这样的经历:思考一个算法只花了半个小时,但是把这个算法写对却花了一天..思考与实现的时间往往不成正比. 下面是我结合自己的经验给出的一些小建议,仅供大家参考,如果有不太好的地方,也欢迎指正~ 关于调试有一个大前提,就是思考的方向一定得严谨正确,因为思考决定实现,如果思考的时候有漏洞,那么实现的程序肯定也不强健.在想出算法之后不要急着实现,一定要认真反

生物竞赛复赛成绩

第二时间在北斗之前搞到了复赛成绩名单,安庆一中今年考的差劲啊.省队线没过一人,高二年级本来以为的zxj高一拿假国二的今年只拿了省二,倒要看安庆一中怎么吹牛用文字游戏来维护本就不强的竞赛氛围和大部分人没有的竞赛意识.本次大部分集中在省二省三线,高一年级全军覆没,最好成绩只是假省三,省三都没个卵用,假省三又有什么用.竞赛初看,高一年级的生物竞赛水平极差,去年高一的还有拿省一省二省三的,今年却省三都没有一个人.所以我认为像石hs,王zj还在搞生物竞赛可能没有太必要了,不如直接转高考. 本届高一的四大学