一、题目
二、代码
#include <iostream>
#include<vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<long long>v(n+1);
for (int i = 0; i < n; i++) {
int a, b;
cin >> a >> b;
v[a] += b;
}
long long max = -1;
int maxschool;
for (int i = 0; i < v.size(); i++) {
if (v[i] >= max) {
max = v[i];
maxschool = i;
}
}
cout<<maxschool<<" " << max;
}
三、分析
读题分析:
编号位数字,可以用vector,需要计算总分,无并列
测试点2:数组越界
数据越界问题:想着刚开始的数组长度是1,所以只有v[0],学校的编号是有顺序的从一开始,所以vector的长度不可能超过n。,所以初始时vector的长度是(n+1),学校从1开始,vector从0开始。
测试用例:
1
1 56