1032.挖掘机技术哪家强(20)

题目描述

为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。

输入描述:

输入在第1行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号、及其比赛成绩(百分制),中间以空格分隔。

输出描述:

在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。

输入例子:

6
3 65
2 80
1 100
2 70
3 40
3 0

输出例子:

2 150

直接在数据输入的时候完成所有的任务

#include<iostream>
using namespace std;

int main()
{
    int N,a,b,max=0;
    cin>>N;
    int m[100001]={0};
    for(;N>0;N--)
    {
        scanf("%d %d",&a,&b);
        m[a]+=b;
        if(m[max]<m[a])
            max=a;
    }
    
    //cout<<max<<' '<<m[max];
    printf("%d %d",max,m[max]);

    
    return 0;
}
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

struct stu
{
    int id;
    int s;
};

bool cmp(stu a,stu b)
{
    return a.id<b.id;
}
int main()
{
    int N;
    cin>>N;
    stu a[100001];
    int m[100001]={0};
    for(int i=0;i<N;i++)
    {
        cin>>a[i].id>>a[i].s;
    }
    
    sort(a,a+N,cmp);
    
    int j=a[0].id;
    for(int i=0;i<N;i++)
    {
        if(a[i].id==j)
            m[j]+=a[i].s;
        else 
        {
            j=a[i].id;
            m[j]=a[i].s;
        }
    }
    
    int sum=0,h;
    for(int i=0;i<=100000;i++)
    {
        if(sum<m[i] && m[i])
        {
            sum=m[i];
            h=i;
        }
    }
    
    cout<<h<<' '<<sum;
    
    return 0;
}
发布了276 篇原创文章 · 获赞 30 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42905141/article/details/103905783