过样例但全wa
代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
struct student {
int cj;
double c;
char dw;
}stu[1010];
bool cmp(student a, student b) {
return a.c > b.c;
}
int main() {
int n, m;
double cj[30][30];
double 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] /= (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] /= (o*1.0);
}
for (int i = 0; i < n; i++) {
stu[i].c = stu[i].cj * 0.6 + sum2[stu[i].dw - 'A'] * 0.4;
if (stu[i].c >= int(stu[i].c) + 0.5)stu[i].cj = int(stu[i].c) + 1;
else stu[i].cj = int(stu[i].c);
}
sort(stu, stu + n, cmp);
for (int i = 0; i < n; i++) {
cout << stu[i].cj << ' ' << stu[i].dw << '\n';
}
return 0;
}