链接: 1032 挖掘机技术哪家强 (20 分).
题目描述
参考代码
方法1:
#include<iostream>
using namespace std;
int main()
{
int i,j,b,c,n,p;
cin>>n;
int a[n]={0};
for(i=0;i<n;i++)
{
cin>>b>>c;
a[b-1]+=c;
b=c=0;
}
p=0;
j=0;
for(i=0;i<n;i++)
{
if(j<a[i])
{
j=a[i];
p=i;
}
}
cout<<p+1<<" "<<j<<endl;
}
方法2:
#include <iostream>
using namespace std;
int main()
{
int N;
int max_num, max_score = 0;
int num, score;
int school[100005] = {0};
cin >> N;
while(N--){
cin >> num >> score;
school[num] += score;
if(school[num]>=max_score){
max_score = school[num];
max_num = num;
}
}
cout << max_num << " " << school[max_num] << endl;
return 0;
}
解题思路
需要运用数组解决,将相同代号的学校分数相加,再进行比较得出分数最高的学校代号和分数。法2与法1相比更为简练一些,注意学校代码从1开始,以及临界值的情况(比如只有1个学校1只队伍参加)。