请问为什么我的代码错了,我认为代码的37~40行以及最后的输出都说明我做了多组输出.求大佬解答。
#include<bits/stdc++.h>
using namespace std;
int n,f;
double ans=-1;
const int maxn=1e5+10;
int a[maxn];
int minn[maxn],sum[maxn];
vector<int>vec;
int main()
{
cin>>n;
cin>>a[1];
for(int i=2;i<=n;i++)
{
cin>>a[i];
}
minn[n]=sum[n]=a[n];
for(int i=n-1;i>=1;i--)
{
minn[i]=min(minn[i+1],a[i]);
}
for(int i=n-1;i>=1;i--)
{
sum[i]=sum[i+1]+a[i];
}
for(int i=1;i<=n-1;i++)
{
double grad=sum[i+1]-minn[i+1];
grad/=(n-i);
//cout<<i<<" "<<grad<<endl;
if(grad>ans)
{
ans=grad;
vec.clear();
vec.push_back(i);
}
else if(fabs(grad-ans)<1e-6)
{
vec.push_back(i);
}
}
for(int i=0;i<vec.size();i++)
{
cout<<vec[i]<<endl;
}
return 0;
}