c 1047 编程团体赛 (20 分)

原题

https://pintia.cn/problem-sets/994805260223102976/problems/994805277163896832

代码

#include <iostream>
#include <stdio.h>
using namespace std;

int team[1001]={0};
int main()
{
    int N;
    cin >> N;
    for (int i = 0; i < N; i++)
    {
        int teamNum,memberNum,grade;
        scanf("%d-%d %d",&teamNum,&memberNum,&grade);
        team[teamNum]+=grade;
    }

    int num,max=0;
    for (int i = 0; i < 1001; i++)
    {
        if(team[i]!=0&&team[i]>=max){
            max=team[i];
            num=i;
        }
    }
    cout<<num<<" "<<max;
    return 0;
}

参看别人简化后

#include <iostream>
using namespace std;

int team[1001] = {0};
int main()
{
    int N;
    cin >> N;
    int max = 0, maxid = 0; //注意max值要单独变量存储,不可以在数组里找
    for (int i = 0; i < N; i++)
    {
        int teamNum, memberNum, grade;
        scanf("%d-%d %d", &teamNum, &memberNum, &grade);
        team[teamNum] += grade;
        if (team[teamNum] >= max)//边输入边判断
        {
            max = team[teamNum];
            maxid = teamNum;
        }
    }
    cout << maxid << " " << max;
    return 0;
}
posted @ 2021-11-23 18:01  Infinite_V胜  阅读(12)  评论(0)    收藏  举报