sort一下,然后比初始rp值大的取平均数就行了
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
const int maxn=1e5+5;
int a[maxn];
int main()
{
int n,x;scanf("%d%d",&n,&x);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);
double ans=x;
for(int i=0;i<n;i++)
{
if(a[i]>=x)
ans=(ans+a[i])/2;
}
printf("%0.3f\n",ans);
return 0;
}