80求调,WA第2,10个点
查看原帖
80求调,WA第2,10个点
996474
happy_banana楼主2025/7/23 09:52

评测记录

#include<bits/stdc++.h>
using namespace std;
int n,a[100010],sum[100010],minn[100010],cnt=0,ans[100010]; 
double middle,maxx=-1.0;
int main()
{
	memset(minn,0x3f,sizeof(minn));
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		sum[i]=sum[i-1]+a[i];
	}
	for(int i=n;i>=1;i--)
		minn[i]=min(minn[i+1],a[i]);
	for(int i=1;i<=n-2;i++)
	{
		middle=(sum[n]-sum[i]-minn[i+1])*1.0/(n-i+1);                                         
		if(middle==maxx) 
		{
			ans[++cnt]=i;
		}
		else if(middle>maxx)
		{
			maxx=middle;
			cnt=0;
			ans[++cnt]=i;
		}
	}
	for(int i=1;i<=cnt;i++)
		cout<<ans[i]<<'\n';
	return 0;
}
2025/7/23 09:52
加载中...