//
// #include<bits/stdc++.h>
#include<iostream>
#include<queue>
#include<iomanip>
using namespace std;
#define int long long
priority_queue< int,vector<int>,less<int> > qmin;
priority_queue< int,vector<int>,greater<int> > qmax;
signed main()
{
int n,a,b,i,sum,x;
while( ~scanf("%lld%lld%lld",&a,&b,&n) )
{
if( n+a+b==0 ) break;
sum=0;
for( i=0;i<n;i++ )
{
scanf("%lld",&x); sum+=x;
qmin.push(x); while( qmin.size()>b ) qmin.pop();
qmax.push(x); while( qmax.size()>a ) qmax.pop();
}
while( !qmin.empty() ) { sum-=qmin.top(); qmin.pop(); }
while( !qmax.empty() ) { sum-=qmax.top(); qmax.pop(); }
printf("%.6lf\n",(double)sum/( n-a-b ) );
}
return 0;
}
// 多组数据注意初始化
repeat_The Average_优先队列
猜你喜欢
转载自blog.csdn.net/qq_63173957/article/details/124596140
今日推荐
周排行