洛谷 P1051 [NOIP 2005 提高组] 谁拿了最多奖学金

AcCode:

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
struct people{
    string name;
    int sc1, sc2;
    char gb, xb;
    int cnt;
    int money;
    int pid;
};

people pe[110];

bool Cmp(const people &a, const people &b){
    if(a.money != b.money) return a.money > b.money;
    return a.pid < b.pid;
}

int main(){
    int N, sum = 0;
    cin >> N;
    for(int i = 0; i < N; i++){
        string name;
        cin >> name;
        int sc1, sc2;
        cin >> sc1 >> sc2;
        char gb, xb;
        cin >> gb >> xb;
        int cnt;
        cin >> cnt;
        pe[i] = {name, sc1, sc2, gb, xb, cnt, 0, i};
        if(sc1 > 80 && cnt >= 1){
            pe[i].money += 8000;
        }
        if(sc1 > 85 && sc2 > 80){
            pe[i].money += 4000;
        }
        if(sc1 > 90){
            pe[i].money += 2000;
        }
        if(sc1 > 85 && xb == 'Y'){
            pe[i].money += 1000;
        }
        if(sc2 > 80 && gb == 'Y'){
            pe[i].money += 850;
        }
        sum += pe[i].money;
    }
    sort(pe, pe + N, Cmp);
    cout << pe[0].name << endl << pe[0].money << endl << sum;
    return 0;
}
posted @ 2025-05-10 19:50  Yuhhhhh  阅读(10)  评论(1)    收藏  举报