实现一个班里学生的综合测评成绩(包括数学、英语、政治三门课程,学分、权重等信息)计算,并按照学生综合测评成绩进行排序。Input输入包括多组数据,每组数据的第一行是一个整数n(n<50000),表示有多少个学生;接下来n+1行,第一行输入为三个实数(介于0到1之间),分别代表三科成绩依次在综合测评中所占的权重;之后输入的n行中每行代表一个学生,每行依次为姓名(注:姓名只含有字母和下划线,不超过25个字符),语文,数学,英语三门课的成绩(注:成绩为实数,介于0到100之间),综合测评成绩为所有科目分数和加权和。Output对于每组数据,综合测评成绩排名从高到低输出所有学生(成绩相同按姓名字典序排列),每个学生一行,每行依次为姓名,语文,数学,英语三门课成绩,综合测评得分,具体见样例。SampleInput1555zhangsan1001001003236zhangsan1002050lisi556677wangwu223366SampleOutputzhangsan0000lisi0000zhangsan0000wangwu0009HINT考察知识点:小数据量的排序问题,时间复杂度O(nlog)),空间复杂度O(n)禁用库函数排序AppendCode#include"iostream"#include"cstring"#include"cstdio"usingnamespacestd;typedefstruct{stringname;doublechinese,math,english,sum;}student;voidQst(student*s,intlow,inthigh){intx=low;inty=high;studentst=s[low];if(low>=high){return;}while(x{while(x=sum){if(s[y]sum==sum&&s[y]ame>=ame)break;--y;}s[x]=s[y];while(x>n>>a>>b>>c){students[n];for(i=0;i{cin>>s[i]ame>>s[i]hinese>>s[i]ath>>s[i]lish;s[i]sum=0;s[i]sum+=s[i]hinese*a;s[i]sum+=s[i]ath*b;s[i]sum+=s[i]lish*c;}Qst(s,0,n-1);for(i=n-1;i>=0;i--){cout<