问题标题: 酷町堂:5464

0
0
已解决
胡景波
胡景波
中级光能
中级光能

5464   团体赛-信息学经验值:1200

题目描述 Description

现在酷町猫想和同学一起去参加信息学的竞赛,这是个团体赛,最后是由团队中,每个团员的成绩总和来比较排名,总分最高的队伍最后获奖,你能帮酷町猫找出获奖的队伍吗?

输入描述 Input Description

第一行:一个正整数 n(n≤10000),全部队员人数
后面n行,每行给出一位队员的成绩,格式为:队伍编号k-队员编号i-成绩p,(都是整数)
(1<=k<=1000) (1<=i<=10) (1<=p<=100)

输出描述 Output Description

输出为一行:队伍编号k与总成绩,用空格分开
题目数据保证,只有一个队伍获奖

样例输入 Sample Input

6 11-5-87 102-1-0 3-10-99 102-3-100 11-9-89 3-2-61

样例输出 Sample Output

11 176

求思路


0
已采纳
蔡乐毅
蔡乐毅
高级光能
高级光能

1.不要用字符串,用char变量带走‘-’(cin>>k>>x>>i>>x>>p,x为字符类型)

2.别管i,直接用桶装a[k]+=p;

3.取a[1]~a[1000]中最大值

0
0
王文博
王文博
缔造者之神
缔造者之神

搜索题号或许有答案

0
杜文博
杜文博
资深守护
资深守护

用结构体把 相同的班级所有人的分数相加,然后sort排序

0
胡景波
胡景波
中级光能
中级光能

80分

  • #include<iostream>
  • using namespace std;
  • int k,r,p,n,a[10005],pos,maxx=-10;
  • char x,y;
  • int main(){
  • cin>>n;
  • for(int i=1;i<=n;i++){
  • cin>>k>>x>>r>>y>>p;
  • a[k]+=p;
  • }
  • for(int i=0;i<=10005;i++){
  • if(a[i]>maxx){
  • maxx=a[i];
  • pos=i;
  • }
  • }
  • cout<<pos<<" "<<maxx;
  • return 0;
  • }
我要回答