Codeforces Round #281 (Div. 2) A. Vasya and Football 模拟

A. Vasya and Football

题目连接:

http://codeforces.com/contest/493/problem/A

Description

Vasya has started watching football games. He has learned that for some fouls the players receive yellow cards, and for some fouls they receive red cards. A player who receives the second yellow card automatically receives a red card.

Vasya is watching a recorded football match now and makes notes of all the fouls that he would give a card for. Help Vasya determine all the moments in time when players would be given red cards if Vasya were the judge. For each player, Vasya wants to know only the first moment of time when he would receive a red card from Vasya.

Input

The first line contains the name of the team playing at home. The second line contains the name of the team playing away. Both lines are not empty. The lengths of both lines do not exceed 20. Each line contains only of large English letters. The names of the teams are distinct.

Next follows number n (1 ≤ n ≤ 90) — the number of fouls.

Each of the following n lines contains information about a foul in the following form:

first goes number t (1 ≤ t ≤ 90) — the minute when the foul occurs;
then goes letter "h" or letter "a" — if the letter is "h", then the card was given to a home team player, otherwise the card was given to an away team player;
then goes the player's number m (1 ≤ m ≤ 99);
then goes letter "y" or letter "r" — if the letter is "y", that means that the yellow card was given, otherwise the red card was given. 

The players from different teams can have the same number. The players within one team have distinct numbers. The fouls go chronologically, no two fouls happened at the same minute.

Output

For each event when a player received his first red card in a chronological order print a string containing the following information:

The name of the team to which the player belongs;
the player's number in his team;
the minute when he received the card. 

If no player received a card, then you do not need to print anything.

It is possible case that the program will not print anything to the output (if there were no red cards).

Sample Input

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

Sample Output

MC 25 70
MC 42 82
CSKA 13 90

Hint

题意

有两个球队在打比赛,然后现在给你每个球队的惩罚情况,让你输出拿红牌的情况。

题解:

模拟题

代码

#include<bits/stdc++.h>
using namespace std;

int H[2][105];
vector<string> ans1;
vector<int> ans2,ans3;
int vis[2][105];
int main()
{
    string s1,s2;
    cin>>s1>>s2;
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        int a,b;
        string a1,b1;
        cin>>a>>a1>>b>>b1;
        int id;
        if(a1=="a")id=0;
        else id=1;
        if(b1=="y")
        {
            H[id][b]++;
            if(H[id][b]==2&&!vis[id][b])
            {
                if(id==0)ans1.push_back(s2);
                else ans1.push_back(s1);
                ans2.push_back(b);
                ans3.push_back(a);
                vis[id][b]=1;
            }
        }
        else
        {
            H[id][b]=2;
            if(H[id][b]==2&&!vis[id][b])
            {
                if(id==0)ans1.push_back(s2);
                else ans1.push_back(s1);
                ans2.push_back(b);
                ans3.push_back(a);
                vis[id][b]=1;
            }
        }
    }
    for(int i=0;i<ans1.size();i++)
        cout<<ans1[i]<<" "<<ans2[i]<<" "<<ans3[i]<<endl;
}

转载于:https://www.cnblogs.com/qscqesze/p/5844103.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值