社区讨论

0pts酋条,条后碧关(麻风良好)

P1051[NOIP 2005 提高组] 谁拿了最多奖学金参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@mhj1vf9q
此快照首次捕获于
2025/11/03 19:21
4 个月前
此快照最后确认于
2025/11/03 19:21
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
struct jxj {
    int qm;
    int py;
    char gb;
    char xb;
    int lw;
    int id;
    int sum;
    string nm;
} a[105];
bool cmp(jxj x, jxj y) {
    if (x.sum != y.sum)
        return x.sum > y.sum;
    else
        return x.id < y.id;
}
int main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> a[i].nm >> a[i].qm >> a[i].py >> a[i].gb >> a[i].xb >> a[i].lw;
        a[i].id = i;
    }
    for (int i = 0; i < n; i++) {
        if (a[i].qm > 90) a[i].sum += 2000;
        if (a[i].qm > 85 && a[i].xb == 'Y') a[i].sum += 1000;
        if (a[i].qm > 80 && a[i].lw >= 1) a[i].sum += 8000;
        if (a[i].py > 80 && a[i].gb == 'Y') a[i].sum += 850;
        if (a[i].qm > 85 && a[i].py >= 80) a[i].sum += 4000;
    }
    sort(a, a + n, cmp);
    int cnt = 0;
    for (int i = 0; i < n; i++) {
        cnt += a[i].sum;
    }
    cout << a[0].nm << endl << a[0].sum << endl << cnt;
    return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...