注意:
1.使用sscanf将字符串转为数字,会存在一个测试点过不去
2.直接使用sscanf控制格式来获得数字
#include <iostream>
#include<string>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
//1047 编程团体赛
/*
思路:
1.直接利用hash【1001】和即可
并用max保存最大的队伍号
由于格式一样,当作字符串来输入一行,根据scanf的格式来提取数据
2. 不知道是否编号相同的成绩录入一次且最高,当作不存在这种情况
*/
using namespace std;
int main() {
int hash[1001]={0};
int n;
int max=0;
cin>>n;
char input[30];
for(int i=0;i<n;i++)
{
int h;
int p;
int grade;
scanf("%d-%d %d",&h,&p,&grade);
hash[h]+=grade;
if(hash[h]>hash[max])
{
max=h;
}
}
cout<<max<<" "<<hash[max]<<endl;
system("pause");
}