大神求解
查看原帖
大神求解
1427903
ltllqy楼主2024/11/3 09:02
#include<bits/stdc++.h>
using namespace std;
struct stu{
	string name;
	int mark[25];
	double sdd;
};
s[100005];
bool cmp(stu a, stu b){
	if (a.sdd == b.sdd)return a.name < b.name;
	return a.sdd > b.sdd;
}
int main(){
	int n, m;
	cin >> n >> m;
	for (int i = 0; i < n; i++){
		cin >> s[i].name;
		int sum = 0;
		for (int j = 0; j < m; j++){
			cin >> s[i].mark[j];
			sum += s[i].mark[j];
		}
		double avg = sum / double(m);
		for (int j = 0; j < m; j++)
			s[i].sdd += (s[i].mark[j] - avg) * (s[i].mark[j] - avg);
		s[i].sdd = sqrt(s[i].sdd / m);
	}
	sort(s, s + n, cmp);
	for (int i = 0; i < min(n, 20); i++)cout << s[i].name << endl;
	return 0;
}
2024/11/3 09:02
加载中...