球球佬们救救孩子
查看原帖
球球佬们救救孩子
1293644
2320508123hzc楼主2024/10/29 14:30

40分求调

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
struct student {
    int cj;
    char dw;
}stu[1010];
bool cmp(student a, student b) {
    if (a.cj != b.cj)return a.cj > b.cj;
    else return a.dw < b.dw;
}
int main() {
    int n, m;
    int cj[30][30];
    int sum1[30], sum2[30];
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        cin >> stu[i].cj >> stu[i].dw;
    }
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < m; j++) {
            cin >> cj[i][j];
        }
    }
    for (int i = 0; i < m; i++) {
        sum1[i] = 0;
        for (int j = 0; j < m; j++) {
            sum1[i] += cj[j][i];
        }
        sum1[i] = round(sum1[i] / (m * 1.0));
    }
    for (int i = 0; i < m; i++) {
        int o=0;
        sum2[i] = 0;
        for (int j = 0; j < m; j++) {
            int k = cj[j][i] - sum1[i];
            if (k >= -15 && k <= 15) {
                sum2[i] += cj[j][i];
                o += 1;
            }
        }
        sum2[i] = round(sum2[i] / (o * 1.0));
    }
    for (int i = 0; i < n; i++) {
        stu[i].cj = round(stu[i].cj * 0.6 + sum2[stu[i].dw - 'A'] * 0.4);
    }
    sort(stu, stu + n, cmp);
    for (int i = 0; i < n; i++) {
        cout << stu[i].cj << ' ' << stu[i].dw << '\n';
    }
    return 0;
}
2024/10/29 14:30
加载中...