【练习】PAT 乙 1047 编程团体赛

题目

编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。现给定所有队员的比赛成绩,请你编写程序找出冠军
队。

输入格式:

输入第一行给出一个正整数N(<=10000),即所有参赛队员总数。随后N行,每行给出一位队员的成绩,格式为:“队伍编号-队员编号
成绩”,其中“队伍编号”为1到1000的正整数,“队员编号”为1到10的正整数,“成绩”为0到100的整数。

输出格式:

在一行中输出冠军队的编号和总成绩,其间以一个空格分隔。注意:题目保证冠军 队是唯一的。

输入样例:

6

3-10 99

11-5 87

102-1 0

102-3 100

11-9 89

3-2 61

输出样例:

11 176

原文链接:https://blog.csdn.net/liuchuo/article/details/51994326

来源:PAT 乙 1047 编程团体赛



纯代码

#include
using namespace std;

int main()
{
    int n;
    cin >> n;
    
    int a[1001] = {0};
    while (n --)
    {
    	string s, t;
    	int d, f;
    	cin >> s >> f;
    	
    	for (int i = 0; i < s.size(); i ++)
    		if (s[i] != '-') t += s[i];
			else{
				d = stoi(t);
				break;
			} 
			
		a[d] += f;
	}
	
	int ans = 0, max = 0;
	for (int i = 0; i < 1001; i ++)
		if (a[i] > max)
		{
			max = a[i];
			ans = i;
		}
    
    cout << ans << " " << max << endl;
    return 0; 
}

你可能感兴趣的:(输入输出,PAT,题解,c++,算法)