您的位置:首页 > 其它

团体程序设计天梯赛-练习集 L2-015. 互评成绩 解题报告

2017-03-18 15:05 357 查看


L2-015. 互评成绩

时间限制

250 ms

内存限制

65536 kB

代码长度限制

8000 B

判题程序

Standard

作者

陈越

学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。

输入格式:

输入第一行给出3个正整数N(3< N <= 104,学生总数)、k(3<= k <= 10,每份作业的评审数)、M(<= 20,需要输出的学生数)。随后N行,每行给出一份作业得到的k个评审成绩(在区间[0, 100]内),其间以空格分隔。

输出格式:

按非递减顺序输出最后得分最高的M个成绩,保留小数点后3位。分数间有1个空格,行首尾不得有多余空格。
输入样例:
6 5 3
88 90 85 99 60
67 60 80 76 70
90 93 96 99 99
78 65 77 70 72
88 88 88 88 88
55 55 55 55 55

输出样例:
87.667 88.000 96.000


#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>
#include <algorithm>
#include <queue>
using namespace std;

int main()
{
int n, k, m;
double ans[10100], c, cj[11];;
scanf("%d%d%d", &n, &k, &m);
for(int i = 0; i < n; i++)
{
for(int j = 0; j < k; j++)
scanf("%lf", &cj[j]);
sort(cj, cj + k);
ans[i] = 0;
for(int j = 1; j < k - 1; j++)
ans[i] += cj[j];
ans[i] /= (k-2);
}
sort(ans, ans + n);
printf("%.3lf", ans[n-m]);
for(int i = n-m+1; i < n; i++)
printf(" %.3lf", ans[i]);
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐