B3798 [NICA #1] 梦熊培养计划
Trump__Biden · · 题解
题目传送门
题意:
给定
思路:
模拟即可,在输入时记录每个学生的成绩和,求出平均数,再根据
代码:
#include<bits/stdc++.h>
using namespace std;
int n;
double m;
struct node{
string s;
double p,f,sum,a[25];
}e[100010];
bool cmp(node x,node y){
if(x.f!=y.f){
return x.f>y.f;
}
return x.s<y.s;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;++i){
cin>>e[i].s;
for(int j=1;j<=m;++j){
cin>>e[i].a[j];
e[i].sum+=e[i].a[j];
}
e[i].p=e[i].sum/m;
for(int j=1;j<=m;++j){
e[i].f+=(e[i].a[j]-e[i].p)*(e[i].a[j]-e[i].p);
}
e[i].f=e[i].f/m;
}
sort(e+1,e+n+1,cmp);
for(int i=1;i<=min(n,20);++i){
cout<<e[i].s<<'\n';
}
return 0;
}