赞
踩
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.
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:
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.
For each event when a player received his first red card in a chronological order print a string containing the following information:
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).
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
解题说明:题目意思是给出两个字符串,分别代表 home 和 away。然后有 t个player,每个player偶四个属性描述:分钟,所属的队名(即上面的两个字符串的其中一个),该player的num,得到的card颜色(y/r)。 当一个人得到两个y card 时会自动转为 r card。最终需要按时间先后的顺序输出player第一次获得red card 的时间。由于数据是按时间先后顺序排列的,那么对于某个player,如果得到 r card,就可以直接输出答案了。然后得到 y card,要先用vis数组记录,如果再次遇到该player 且 vis数组已经被标记,那么这个player 符合条件,直接输出答案。注意,输出答案之后要标记这个player已经被处理。
- #include<iostream>
- #include<cstdio>
- #include<algorithm>
- #include<cstring>
- #include<string>
- #include<cmath>
- #include<cstdlib>
- using namespace std;
-
- char as[100], ar[100], te[100];
- int t1[100], t2[100];
-
- int main()
- {
- int i, j, k, n, a, b, c;
- char c1,c2;
- scanf(" %s %s",ar,as);
- scanf(" %d",&n);
- for(i=0;i<n;i++)
- {
- scanf(" %d %c %d %c",&a,&c1,&b,&c2);
- if(c1=='h')
- {
- if(t1[b]>=2)
- {
- continue;
- }
- if(c2=='y')
- {
- t1[b]++;
- }
- else
- {
- t1[b]+=2;
- }
- if(t1[b]>=2)
- {
- printf("%s %d %d\n",ar,b,a);
- }
- }
- else
- {
- if(t2[b]>=2)
- {
- continue;
- }
- if(c2=='y')
- {
- t2[b]++;
- }
- else
- {
- t2[b]+=2;
- }
- if(t2[b]>=2)
- {
- printf("%s %d %d\n",as,b,a);
- }
- }
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。