#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main(){
int n,num,temp,a[1000001];
a[1000000]={0};
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%d",&num,&temp);
a[num]+=temp;
}
int k=1,max=-1;
for(int i=1;i<=n;i++)
{
if(a[i]>max)
{
max=a[i];
k=i;
}
}
printf("%d %d",k,max);
return 0;
}
总结
- 想到了用下标存第几组,然后对应累加 ✅
- 记录最大值max 和对应下标k,不断更新 ⚠️
之前用while(n–)写
重复用了n ,可是前面的n已经改变了