PAT 1032 挖掘机技术哪家强(20)

私练习

题目

/*
 1032. 挖掘机技术哪家强(20)


 为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。

 输入格式:

 输入在第1行给出不超过10^5的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。

 输出格式:

 在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。

 输入样例:
6
3 65
2 80
1 100
2 70
3 40
3 0
 输出样例:
 2 150

 */

思路

 

代码

#include <cstdio>
#include <cstring>
#include <algorithm>

int total[100005];

int main(){
    int n;
    scanf("%d",&n);

    int num;
    int score;
    memset(total, 0, sizeof(total));
    for (int i = 0; i < n; ++i) {
        scanf("%d%d",&num,&score);
        total[num] += score;
    }

    int maxNum = 1;
    int maxScore = total[1];
    for (int i = 2; i <= n; ++i) {
        if (total[i] > maxScore) {
            maxNum = i;
            maxScore = total[i];
        }
    }

    printf("%d %d\n",maxNum,maxScore);


    return 0;
}

为用事实证明挖掘机技术到底哪家强,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>

int main(){
  int n,tmp,pid,score,max=0;
  int id[100000]={0};
  scanf("%d",&n);
  for(int i=0;i<n;i++)
  {
    scanf("%d %d",&pid,&score);
    id[pid]+=score;
  }
  for(int i=0;i<100000;i++)
  {
    if(id[i]>max)
    {
      tmp=i;
      max=id[i];
    }
  }
  printf("%d %d",tmp,id[tmp]);
  return 0;
}

 

头为没有考虑到“不越 10​^5的正整数 N”的标准化,导致产生一个测试用例出现“段错误”。

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图