zoukankan      html  css  js  c++  java
  • 小Q系列故事——最佳裁判

    Time Limit:200MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

    Description

      过去的2012年对小Q来说是很悲催的一年,失恋了12次,每次都要郁闷1个来月。 
      好在小Q是个体育迷,在最痛苦的时候,他常常用观看各种体育节目来麻醉自己,比如伦敦奥运会期间,小Q就常常在周末邀上一群单身同事聚在自己的蜗居,一边畅饮啤酒,一边吹牛。 
      小Q最喜欢看的是跳水,主要原因也是因为这个项目有中国人参加,而且中国队员获胜的几率很大,一般不会再给自己添堵,不然何谈看体育疗情伤呢。 
      跳水项目的一个重要环节就是裁判打分,小Q他们有时候会觉得某个裁判不公平,是不是有意在压中国队员的分数。于是每当一个队员跳水完毕,他们几个也像电视上的裁判那样给队员打分,并且规定,谁的分数和最终得分最接近谁就是他们当中的最佳裁判,现场奖励啤酒一杯! 
      其中,最终得分是这样计算的:N个人打分,去掉一个最高分,去掉一个最低分,然后剩余分数相加,再除以N-2即为最终得分。 
      凭借“看体育疗情伤”而练就的专业体育知识,小Q几乎每局必胜,这一夜,小Q注定要烂醉如泥了...... 
     

    Input

      输入包含多组测试用例。 
      每组测试用例首先是一个整数N,表示裁判的人数,然后接着是N个实数,表示N个裁判的打分Pi,N为0时结束输入。 
       [Technical Specification]
      5 <= N <= 20 
      0<=Pi<=10
     

    Output

      请计算并输出最佳裁判的编号,每组数据输出占一行,若有多人并列最佳裁判,只要求输出编号最小的那个。 
      特别说明:裁判编号按照打分的顺序从1开始,依次类推,最后一人编号为N。
     

    Sample Input

    5 8.3 9.2 8.7 8.9 9.0 0
     

    Sample Output

    4
     
    //因为是比赛时做的,所以名字没起好,别见怪,用两个数组一个保存排序后的,一个保存排序前的,其实可以用二维数组来做,当时脑子秀逗了。
    #include <iostream>
    #include <stdio.h>
    #include <algorithm>
    using namespace std;
    const int maxd=20;
    double a[maxd],b[maxd],c[maxd],d[maxd];
    
    double cmp(double a,double b)
    {
        return a<b;
    }
    
    int main()
    {
        int n,tab;
        double sum,num;
        double f1,f2;
        while (scanf("%d",&n),n)
        {   tab=0;
            sum=0;num=0;f1=0;f2=0;
            for (int i=0;i<n;i++)
              {
                scanf("%lf",&a[i]);
                b[i]=a[i];
              }
            sort(a,a+n,cmp);
            f1=a[0];f2=a[n-1];
            a[0]=0;a[n-1]=0;
            for (int i=0;i<n;i++)
                sum+=a[i];
            num=sum/(n-2);
            a[0]=f1;a[n-1]=f2;
            for(int i=0;i<n;i++)
                {
                    c[i]=(a[i]-num)*(a[i]-num);
                    d[i]=(b[i]-num)*(b[i]-num);
                }
            sort(c,c+n,cmp);
            for (int i=0;i<n;i++)
               if (c[0]==d[i]) {tab=i;break;}
            printf("%d
    ",tab+1);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    VirtualBox Network设置的NAT和Bridged Adapter模式区别
    Kubernetes里的ConfigMap的用途
    使用Kubernetes里的job计算圆周率后2000位
    给谷歌输入法增添自定义词组,提高输入效率
    推荐一个yaml文件转json文件的在线工具
    GCC同时使用静态库和动态库链接
    Linux后台开发常用工具
    gcc链接参数--whole-archive的作用
    rdynamic和-whole-archive
    gcc和ld 中的参数 --whole-archive 和 --no-whole-archive
  • 原文地址:https://www.cnblogs.com/gdvxfgv/p/5696275.html
Copyright © 2011-2022 走看看