TB椰程 TypeBuddy 打字搭子

歌唱比赛

洛谷·深入浅出 · 代码 · cpp · 难度 3/5 · 共 775 字

去掉最高最低分后的平均分最高者

  • 洛谷
  • 例题

正文

// 原题:https://oj.yecheng.tv/p/1432
// 题意:n 名选手、m 名评委打分(0~10)。每人去掉一个最高、一个最低后取平均,求最高平均分。
// 思路:对每人求总分、最大、最小,平均 = (sum-max-min)/(m-2),记录最大值并保留 2 位小数。
// 复杂度:O(n*m)。
// 易错点:去掉一个最高和一个最低后除以 m-2;保留 2 位小数。
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;
int main(){
    int n, m;
    cin >> n >> m;
    double best = -1;
    for(int i = 0; i < n; i++){
        vector<int> a(m);
        int sum = 0, mx = -1, mn = 11;
        for(int j = 0; j < m; j++){
            cin >> a[j];
            sum += a[j];
            if(a[j] > mx) mx = a[j];
            if(a[j] < mn) mn = a[j];
        }
        double avg = (sum - mx - mn) / double(m - 2);
        if(avg > best) best = avg;
    }
    cout << fixed << setprecision(2) << best << endl;
    return 0;
}

洛谷·深入浅出的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK