PAT 乙级 1032 挖掘机技术哪家强 (20分)---简单模拟 (数组存储)

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int n = 1e5+10;
int sum[n]={
    
    0};//初始化数组,防止误差 

int main(){
    
    
	int num;
	scanf("%d",&num);
	int id;//学校编号
	int score;//分数
	for(int i = 0; i < num; i++){
    
    
		scanf("%d%d",&id,&score);
		sum[id]+=score;//每个学校的总分
	}
	int max_sum=0;
	int max_id=0;//学校最大id 
	for(int i = 1; i <= num; i++){
    
    //id从1开始计,到num 
		if(sum[i]>max_sum){
    
    
			max_sum=sum[i];
			max_id=i;
		}
	}
	printf("%d %d",max_id,max_sum);
	return 0;
}

注意:

	注意选取最大值时,循环应从1开始,因为id编号是从1开始。如果从0开始循环,sum[0]系统自动赋予一个特别大的数,则就会错误成这个数是最大,最大队伍就是id=0。这是不对的。

猜你喜欢

转载自blog.csdn.net/weixin_44926962/article/details/109544189
今日推荐