為了用事實說明挖掘機技術到底哪家強,PAT 組織了一場挖掘機技能大賽。現請你根據比賽結果統計出技術最強的那個學校。
輸入格式:
輸入在第 1 行給出不超過 10^5 的正整數 N,即參賽人數。隨後 N 行,每行給出一位參賽者的資訊和成績,包括其所代表的學校的編號(從 1 開始連續編號)、及其比賽成績(百分制),中間以空格分隔。
輸出格式:
在一行中給出總得分最高的學校的編號、及其總分,中間以空格分隔。題目保證答案唯一,沒有並列。
輸入樣例:
6
3 65
2 80
1 100
2 70
3 40
3 0
輸出樣例:
2 150
Think
這裡儲存我用的陣列,學校編號為陣列下標,分數為對應的下標值。注意校編號從1開始。
code
import java.io.*;
public class 挖掘機技術哪家強 {
public static void main(String[] args) throws IOException {
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
in.nextToken();
int n = (int) in.nval,max = 0,len,sch = 0;
int[] score = new int[n];
while(0 < n--) {
in.nextToken();
int schoo = (int) in.nval;
in.nextToken();
int sco = (int) in.nval;
score[schoo] += sco;
}
len = score.length;
for(int i = 1 ; i < len ; i++) {
if(score[i] > max) {
max = score[i];
sch = i;
}
}
System.out.print(sch + " " + max);
}
}
遺憾的是java程式碼跑不通pta,所以用C++程式碼吧,測試通過了
#include<iostream>
#include<cstdio>
using namespace std;
int a[100001]={0};
int main() {
int n,bianhao,score,max=0,j;
cin>>n;
while(n--){
cin>>bianhao>>score;
a[bianhao] += score;
}
for(int i=0;i<100000;i++) {
if(a[i]>max) {
max = a[i];
j = i;
}
}
cout<<j<<" "<<max; return 0;
}