PAT_乙级训练记录 (B1032)

来源:互联网 发布:it网络工程师培训 编辑:程序博客网 时间:2024/06/04 18:12

1. 题目再现

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

输入格式:

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

输出格式:

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

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

输出样例:
2 150

2. 题目思考

  题目还是较为简单,主要掌握一个点:

  • 控制台输入内容转化为int数据

3. 实现方式

  • c++实现

    #include <cstdio>int main(){    int recordNum, num, score;    scanf("%d", &recordNum);    int recordDetail[recordNum] = {0};    for(int i = 0; i < recordNum; i++)    {        scanf("%d %d", &num, &score);        recordDetail[num-1] += score;    }     int max = 0;    for(int i = 0; i < recordNum; i++)    {        if(recordDetail[max] < recordDetail[i])            max = i;    }    printf("%d %d\n", max+1, recordDetail[max]);    return 0;}
  • java实现(会超时,未知原因)

    import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        int recordNum = scanner.nextInt();        if(recordNum > 100000)            return;        int[] recordDetail = new int[recordNum];        for (int i = 0; i < recordNum; i++) {            int num = scanner.nextInt();            int score = scanner.nextInt();            recordDetail[num - 1] += score;        }        int max = 0;        for (int i = 0; i < recordNum; i++) {            if (recordDetail[i] > recordDetail[max]) {                max = i;            }        }        System.out.println((max + 1) + " " + recordDetail[max]);    }}
原创粉丝点击