这道题为什么过不了啊?
查看原帖
这道题为什么过不了啊?
596168
newbie_001楼主2023/10/23 20:35
#include <iostream>
#include <cstring>
#include <algorithm>
#include <math.h>
using namespace std;
const int N = 1010;
int n,k;
int a[N][N];
int avg[N];
int sum[N][N];
int ssum[N];
int cnt[N];
typedef struct lilun{
    int score;
    char group;
    bool operator < (const lilun &e){
		return score > e.score;
    }
}LiLun[N];
int main(){
    LiLun l;
    cin >> n >> k;
    for(int i = 1;i <= n;i ++)cin >> l[i].score >> l[i].group;
    for(int i = 1;i <= k;i ++){
        for(int j = 1;j <= k;j ++)
            {
                cin >> a[i][j];
                sum[i][j] = sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1] + a[i][j];
            }
    }
    for(int i = 1;i <= k ;i ++){
        ssum[i] = sum[k][i] - sum[k][i - 1];
        avg[i] = ssum[i] / k;
    }
    for(int i = 1;i <= k;i ++){
        for(int j = 1;j <= k;j ++){
            if(abs(a[j][i] - avg[i]) > 15){
                ssum[i] -= a[j][i];
                cnt[i] ++;//剔除次数;
            }
        }
    }
    for(int i = 1;i <= k;i ++) {
        avg[i] = ssum[i] / (k - cnt[i]) ;
    }
    for(int i = 1;i <= n;i ++){
        int t = 'A';
        int t2 = l[i].group;
        l[i].score = round(l[i].score * 0.6 + avg[t2 - t + 1] * 0.4);
    }
    sort(l + 1,l + n + 1);
    for(int i = 1;i <= n;i ++)cout << l[i].score <<" " << l[i].group << endl;
    return 0;
}
2023/10/23 20:35
加载中...