A
预处理最小值和前缀和
#include <bits/stdc++.h>
using namespace std;
int n,a[100005],mmin[100005];
double ave[100005],mmax=0;
int main()
{
cin >> n;
for(int i=1;i<=n;i++) cin >> a[i];
mmin[n]=a[n];mmax=0;int sum=a[n];
for(int i=n-1;i>=1;i--)
{
mmin[i]=min(mmin[i+1],a[i]);
sum+=a[i];ave[i]=double(sum-mmin[i])/(n-i);
mmax=max(mmax,ave[i]);
}
for(int i=2;i<=n-1;i++) if(ave[i]==mmax) cout << i-1 << endl;
return 0;
}