题目:Shooting Game
来源:东华大学2020年程序设计竞赛(同步赛)

解题思路

一共有 n 个参赛者,其ID为 id,射中红色、白色和黑色靶子的次数分别为 rwb
每射中红色、白色和黑色靶子计分 1、2、3。
求得分最高者的ID和得分。

C++代码

#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;

int main(){
    int N;
    scanf("%d", &N);
    int maxPoints = 0;
    int id, r, w, b;
    vector<int> winners;
    for(int i=0; i<N; ++i){
        scanf("%d%d%d%d", &id, &r, &w, &b);
        int p = r + 2*w + 3*b;
        if(p > maxPoints){
            winners.clear();
            winners.push_back(id);
            maxPoints = p;
        }
        else if(p == maxPoints){
            winners.push_back(id);
        }
    }
    sort(winners.begin(), winners.end());
    printf("%d %d\n", winners[0], maxPoints);
    return 0;
}