• hdu 4520


    小Q系列故事——最佳裁判

    Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
    Total Submission(s): 2460    Accepted Submission(s): 1184


    Problem 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
     
    Source
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<math.h>
    #include<queue>
    using namespace std;
    double a[25];
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF,n){
            double MIN = 99,MAX = -1;
            int t1 = 1,t2 = 1;
            for(int i=1;i<=n;i++){
                scanf("%lf",&a[i]);
                if(a[i]>MAX){
                    t1 = i;
                    MAX = a[i];
                }
                if(a[i]<MIN){
                    t2 = i;
                    MIN = a[i];
                }
            }
            double sum = 0;
            for(int i=1;i<=n;i++){
                if(i==t1||i==t2) continue;
                sum+=a[i];
            }
            sum/=(n-2);
            MIN = 99;
            int res = 1;
            for(int i=1;i<=n;i++){
                if(i==t1||i==t2) continue;
                a[i] = fabs(sum-a[i]);
                if(MIN>a[i]){
                    res = i;
                    MIN = a[i];
                }
                else if(MIN==a[i]&&i<res){
                    res = i;
                    MIN = a[i];
                }
            }
            printf("%d
    ",res);
    
        }
        return 0;
    }
  • 相关阅读:
    osg利用矩阵投影在平面上产生阴影
    让openGL告诉你,什么是物体的移动与旋转
    利用openGL纯手工打造一个金字塔
    Java基础(四) StringBuffer、StringBuilder原理浅析
    Java基础(二) 基本类型数据类型、包装类及自动拆装箱
    Java基础(一) 八大基本数据类型
    小酌重构系列[20]——用条件判断代替异常
    小酌重构系列[19]——分解大括号
    小酌重构系列[18]——重命名
    小酌重构系列[17]——提取工厂类
  • 原文地址:https://www.cnblogs.com/liyinggang/p/5616610.html
Copyright © 2020-2023  润新知