1032 挖掘機技術哪家強——C/C++實現
阿新 • • 發佈:2018-12-01
題目
1032 挖掘機技術哪家強 (20 point(s))
為了用事實說明挖掘機技術到底哪家強,PAT 組織了一場挖掘機技能大賽。現請你根據比賽結果統計出技術最強的那個學校。
輸入格式:
輸入在第 1 行給出不超過 105 的正整數 N,即參賽人數。隨後 N 行,每行給出一位參賽者的資訊和成績,包括其所代表的學校的編號(從 1 開始連續編號)、及其比賽成績(百分制),中間以空格分隔。
輸出格式:
在一行中給出總得分最高的學校的編號、及其總分,中間以空格分隔。題目保證答案唯一,沒有並列。
輸入樣例:
6 3 65 2 80 1 100 2 70 3 40 3 0
輸出樣例:
2 150
演算法
程式碼1是將學校編號作為下角標,分數作為一編號為下標陣列元素的值進行儲存,逐個累加,並比較保留最大值。
這道題很明顯地也可以採用map。見程式碼2.
程式碼2是使用map,這方面類似於陣列,但是很方便。
程式碼
1、C
//PAT1032V1 #include <stdio.h> int main(){ int n,i,j,id=0,max=0; scanf("%d",&n); int a,sum[100001]={0}; for(i=0;i<n;i++){ scanf("%d %d",&j,&a); sum[j]+=a; if(max<sum[j]){ id=j; max=sum[j]; } } printf("%d %d",id,max); }
2、C++
#include <iostream> #include <map> using namespace std; int main(){ int N,maxid=0,maxscore=0; cin>>N; map<int,int> m; for(int i=0;i<N;i++){ int id,score; cin>>id>>score; m[id]+=score; if(maxscore<m[id]){ maxid=id; maxscore=m[id]; } } cout<<maxid<<" "<<maxscore; }