遥控飞机争夺赛

遥控飞机争夺赛




 

问题描述

红太阳杯遥控飞机大赛拉开帷幕。比赛规则为,每位选手让自己的飞机从起点到终点飞行 55 次,组委会记录 55 次的飞行的成绩之后去掉一个最大成绩、一个最小成绩后计算剩余 33 个成绩的平值(平均分保留 33 位小数)作为该选手的最终成绩。

有 nn 名选手参加了比赛,从键盘读入每位选手的编号以及他们的 55 次飞行的成绩。

请根据 nn 名选手的比赛成绩,编程计算出冠军、亚军、季军的编号以及组委会计算出的成绩。(假设不存在多名选手成绩正好一样)( 4.1.514.1.51 )

输入

第一行为一个整数 nn ,代表参加比赛的选手数量( 4≤n≤1004≤n≤100)

后面的 nn 行,每行有 66 个数,第一个数是选手的编号,后 55 个数为选手的 55 次飞行的成绩。

输出

33 行:

第一行输出冠军的编号及飞行成绩(保留 33 位小数)用空格隔开 22 个数;

第二行输出亚军的编号及飞行成绩;

第三行输出季军的编号及飞行成绩。

样例

输入

复制

4
11 58 59 60 61 62
18 59 60 61 62 63
23 65 64 63 62 62 
10 60 61 61 65 62
输出

复制

23 63.000
10 61.333
18 61.000

编辑代码

#include<bits/stdc++.h>
using namespace std;
struct player
{
    int num;
    double t_score;
    bool operator <(const player &a)const 
    {
        if(t_score<a.t_score) return true;
        else return false;
    } 
}p[105];          
priority_queue<player>q;   
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>p[i].num;   
        int sum=0; 
        int max_=0,min_=100;   
        for(int j=1;j<=5;j++)
        {
            int temp;
            cin>>temp;
            sum+=temp;     
            if(max_<temp)
            { 
                max_=temp; 
            }   
            if(min_>temp)
            { 
                min_=temp; 
            }
        }
        p[i].t_score=(sum-max_-min_)/3.0000; 
        q.push(p[i]); 
    }
    for (int i=0;i<3;i++)
    {
        player p_temp;
        p_temp = q.top();
        q.pop();
        cout <<p_temp.num<<" "<<fixed<<setprecision(3)<<p_temp.t_score<<endl;
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值