题目描述
为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。
输入描述
输入在第1行给出不超过10^5的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。
输出描述
在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。
输入例子
6
3 65
2 80
1 100
2 70
3 40
3 0
输出例子
2 150
我的代码
#include<stdio.h>
#define N 100000
typedef struct List{
int num;
int score;
}MYLIST;
int main(){
int n,i,j,t,sum[N],max1=0,max2=0;
MYLIST a[N];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d %d",&a[i].num,&a[i].score);
if(max1<a[i].num){
max1=a[i].num;
}
}
for(i=1;i<=max1;i++){
sum[i]=0;
for(j=0;j<n;j++){
if(a[j].num==i){
sum[i]=sum[i]+a[j].score;
}
}
if(sum[i]>max2){
max2=sum[i];
t=i;
}
}
printf("%d %d",t,max2);
return 0;
}
我的分析
这道题是比较简单的一道题。我的方法是用一个结构体来存储每一个选手的信息,然后再用两个循环将编号相同的选手的总分加起来,然后再循环中顺便找出总分最多的那一组,最后是记住他们的编号与总分,输出。
网友评论