洛谷-P5738 【深基7.例4】歌唱比赛
题目描述
n(n≤100) 名同学参加歌唱比赛,并接受 m(m≤20)m(mle 20)m(m≤20) 名评委的评分,评分范围是 0 到 10 分。这名同学的得分就是这些评委给分中去掉一个最高分,去掉一个最低分,剩下 m−2m-2m−2 个评分的平均数。请问得分最高的同学分数是多少?评分保留 2 位小数。
输入格式
无
输出格式
无
输入输出样例
输入 #1
7 6
4 7 2 6 10 7
0 5 0 10 3 10
2 6 8 4 3 6
6 3 6 7 5 8
5 9 3 3 8 1
5 9 9 3 2 0
5 8 0 4 1 10
输出 #1
6.00
C++代码
#include <cstdio>
using namespace std;
int ans[100];
int main() {
int n, m, maxm, minm;
scanf("%d %d", &n, &m);
int a[n][m];
for (int i=0; i<n; ++i)
for (int j=0; j<m; ++j)
scanf("%d", &a[i][j]);
for (int i=0; i<n; ++i) {
maxm = -1, minm = 11;
for (int j=0; j<m; ++j) {
ans[i] += a[i][j];
if (a[i][j] > maxm)
maxm = a[i][j];
if (a[i][j] < minm)
minm = a[i][j];
}
ans[i] -= maxm + minm;
}
maxm = -1;
for (int i=0; i<n; ++i)
if (ans[i] > maxm)
maxm = ans[i];
printf("%.2f
", maxm*1.0/(m-2));
return 0;
}