本文共 1031 字,大约阅读时间需要 3 分钟。
为了比较各个学校在挖掘机技术方面的实力,PAT组织了一个挖掘机技能大赛。比赛结果由参赛者的表现和分数决定。我们的任务是根据比赛结果统计出技术最强的学校。
输入格式如下:第一行给出正整数N,表示参赛人数。接下来的N行,每行包含两个整数:第一个是参赛者的学校编号,第二个是比赛成绩(百分制)。
输出格式:一行,给出总分最高的学校编号和总分,中间用空格分隔。
解决这个问题的方法是,使用一个数组来记录每个学校的总得分。对于每个参赛者,将其成绩加到对应的学校总分中。最后,遍历数组,找出总分最高的学校及其得分。
具体步骤:
代码实现:
package com.hone.basical;import java.util.Scanner;public class BestSchool { public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = s.nextInt(); int[] scores = new int[100001]; // 足够大,避免溢出 for (int i = 0; i < n; i++) { int schoolId = s.nextInt(); int score = s.nextInt(); scores[schoolId] += score; } int maxScore = -1; int bestSchoolId = 0; for (int i = 1; i <= n; i++) { if (scores[i] > maxScore) { maxScore = scores[i]; bestSchoolId = i; } } System.out.println(bestSchoolId + " " + maxScore); }} 转载地址:http://bjnbz.baihongyu.com/