Description
好在小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
Sample Output
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int n,flag;
double a[20],max,sum,min,ave,x;
while(~scanf("%d",&n))
{
if(n==0||n<5) break;
for(int i=0;i<n;i++)
scanf("%lf",&a[i]);
max=-999;
min=999;
sum=0;
for(int i=0;i<n;i++)
{
if(max<a[i]) max=a[i];
if(min>a[i]) min=a[i];
sum+=a[i];
}
ave=(sum-max-min)/(n-2);
x=999;
for(int i=0;i<n;i++)
{
if(x>fabs(ave-a[i]))
{
x=fabs(ave-a[i]);
flag=i;
}
}
printf("%d
",flag+1);
}
return 0;
}