我的思路就是排序之后从小到大和从大到小都算一次,只有子任务四没有全AC。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int a[100005];
ll n,m,sum;
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
sort(a+1,a+n+1);
sum=0;
for(int i=1;i<=n;i++)
{
if(sum<=a[i]*(i-1)) sum+=m;
}
printf("%.2lf ",(double)sum/n);
sum=0;
for(int i=1;i<=n;i++)
{
if(sum<=a[n-i+1]*(i-1)) sum+=m;
}
printf("%.2lf",(double)sum/n);
return 0;
}