题目链接:
https://pintia.cn/problem-sets/994805260223102976/problems/994805289432236032
本人代码:
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int main() {
int n;
while (cin >> n) {
int m[10010] = {0};
int n_ = n;
int i,scr;
while (n--) {
// int i, scr;
scanf("%d%d",&i,&scr);
// cin >> i >> scr;
m[i] += scr;
}
int max_ = 0,maxn=0;
for (int i = 1; i < n_; i++) {
if (maxn < m[i]){
maxn=m[i];
max_ = i;
}
}
printf("%d %d\n",max_,maxn);
// cout << max << " " << m[max];
}
}
结果:(跪求大佬指点一二)
AC代码(算法笔记):
#include <iostream>
#include <cstdio>
using namespace std;
const int maxn=100010;
int school[maxn]={0};//记录每个学校的总分
int main()
{
int n,schID,score;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%d",&schID,&score);//学校ID,分数
school[schID]+=score;//学校schID的总分增加score
}
int k=1,MAX=-1;//最高总分的学校ID及总分
for(int i=1;i<=n;i++){
if(school[i]>MAX){
MAX=school[i];
k=i;
}
}
printf("%d %d\n",k,MAX);//输出最高总分的学校ID及其总分
return 0;
}