1. 程式人生 > >牛客小白月賽2:文

牛客小白月賽2:文

連結:https://www.nowcoder.com/acm/contest/86/G
來源:牛客網

時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 262144K,其他語言524288K
64bit IO Format: %lld

題目描述

Sεlιнα(Selina) 開始了新一輪的男友海選。她要求她的男友要德智體美勞樣樣都全。首先進行的是文化知識競賽。 Sεlιнα 精心準備了一套選擇題,每個選擇題有且只有一個正確答案。她邀請參賽男友們來答題,並回收了試卷準備批改。可是她卻犯了愁。她不知道怎麼快速地批改完這些試卷。她知道你是計算機大佬,就跑來請你寫個程式幫她批改試卷。 Sεlιнα 會給你一份標準答案,再給你每個參賽男友的答卷。答卷中的每道題可能有一個答案, 也可能沒有作答。你要做的是最後告訴 Sεlιнα
誰拿到了最高分,以及最高分的分數(分數為 分制)。Sεlιнα 喜歡優美的名字,所以如果有同樣的分數,請告訴她其中字典序最小的選手名字。 不要偷懶哦!要是你告訴了 Sεlιнα 錯誤的答案,她會很生氣的!

輸入描述:

第一行兩個整數 ,表示有 道選擇題和 個參賽男友。第二行一個長為 的字串,表示標準答案。其中第 個字母表示第 個選擇題的答案。保證所有字母在  中。接下去 行,每兩行表示一個參賽男友:  · 第一行一個字串,表示參賽者姓名,保證姓名僅由大小寫字母組成; · 第二行一個長為 的字串,表示該參賽者的答案。其中第 個字母表示該參賽者對於第 個選擇題的答案。保證所有字母在
中。 表示該參賽者未作答此題。

輸出描述:

輸出共兩行,第一行是最高分的參賽男友姓名,第二行為其分數。分數為 分制,保留兩位小數。若有多人同分,輸出字典序最小的姓名。 示例1

輸入

5 3
ADBBC
spiderman
ADBAC
niconico
BDXBC
ekstieks
ACBBC

輸出

ekstieks
80.00

備註

  姓名長度  
#include<stdio.h>
#include<string.h>
#define N 100020
struct dete{
	char name [50];
	char ans[N];
	double s;
}a[120],max;
char answer[N];
int main()
{
	int n,m,i,j;
	max.s=0;
	scanf("%d%d",&n,&m);
	scanf("%s",answer);
	for(i=0;i<m;i++)
	{	
		a[i].s=0;
		scanf("%s%s",a[i].name,a[i].ans);
		for(j=0;j<n;j++)
			if(a[i].ans[j]==answer[j])
				a[i].s++;
		if(i==0)
			max=a[i];
		else if(a[i].s>max.s)
			max=a[i];
		else if(a[i].s==max.s&&strcmp(max.name,a[i].name)>=0)
			max=a[i];
	}
	printf("%s\n%.2lf\n",max.name,max.s/n*100);
	return 0;
}