我的PAT-BASIC代码仓:https://github.com/617076674/PAT-BASIC
原题链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805277163896832
题目描述:
知识点:计数
思路:用一个大小为1001的数组来分别保存每队的成绩
时间复杂度是O(n),其中n为所有参赛队员总数。空间复杂度是O(1001)。
C++代码:
#include<iostream>
#include<string>
using namespace std;
int calculateQueueNumber(string number);
int main(){
int n;
cin >> n;
string number;
int score;
int total[1001];
for(int i = 0; i < 1001; i++){
total[i] = 0;
}
for(int i = 0; i < n; i++){
cin >> number >> score;
total[calculateQueueNumber(number)] += score;
}
int maxIndex = 0;
for(int i = 1; i < 1001; i++){
if(total[i] > total[maxIndex]){
maxIndex = i;
}
}
cout << maxIndex << " " << total[maxIndex] << endl;
return 0;
}
int calculateQueueNumber(string number){
int result = 0;
for(int i = 0; i < number.length(); i++){
if(number[i] == '-'){
break;
}
result = result * 10 + (number[i] - '0');
}
return result;
}
C++解题报告: