西南交通大学2019ACM集训队选拔训练赛-第一轮 B题

做题有顺序

描述

在某次ACM比赛中,一共有8道题,分别是A, B, C… H题。题目难度随机分布,最终成绩与AC数目和时间都有关系,所以先做简单的题目便成了很多人的选择。为了方便起见,我们认为某题被AC的人数越多,则该题越简单。现给出n条提交记录,试找出最简单的题。

输入

多组测试数据,第一行一个整数t(1<=t<=100),表示包含t组测试数据

每组测试数据第一行包含一个整数n(1<=n<=1000),表示n条提交记录

接下来n行,每行包含一个字符 ch(‘A’ <= ch <= ‘H’) 和一个字符串 str 表示某次提交信息。ch表示此次提交题目题号,str表示提交结果:"Accepted"表示该题正确通过(即AC); "Wrong Answer"表示该题答案错误; "Time Limit Exceeded"表示程序运行时间超出规定时间; "Runtime Error"表示程序运行时发生错误,可能是数组访问越界,除零错误,栈溢出等; “Compile Error” 表示程序编译没有通过; “Memory Limit Exceeded” 表示程序使用内存过多

输出

每组数据输出一行,包含一个字符表示八道题中最简单的题。若多题一样简单,则输出那个最小的题号。

输入样例 1

1
7
A Accepted
B Wrong Answer
A Time Limit Exceeded
B Accepted
C Runtime Error
A Compile Error
B Accepted

输出样例 1

B

题解
本题只需判断每题AC的次数,可以设置一个数组,数组的元素分别表示各题AC的次数,一边输入一边判断,若输入为“Accepted”,则数组的相应元素加一,输入完成之后再找出数组中最大的元素,就可以得到相应的最简单的题。

代码

#include
#include
int main()
{
	int t,n,x[10],b,max,i;
	char ch,str[30];
	scanf("%d",&t);
	while(t--)
	{
		memset(x,0,sizeof(x));
		scanf("%d",&n);
		getchar();
		while(n--)
		{
			ch=getchar();
			getchar();
			gets(str);
			b=ch-65;
			if(str[0]=='A')
				x[b]++;
		}
		max=0;
		for(i=0;i<=7;i++)
		{
			if(x[max]

你可能感兴趣的:(西南交通大学2019ACM集训队选拔训练赛-第一轮 B题)