90pts WA#10求条(带注释)
查看原帖
90pts WA#10求条(带注释)
1272418
Unblocked_user楼主2025/8/2 20:12
//前缀和做法,但不知道为什么WA了#10		ゞ(っ °Д °;)っ 
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n;
long double a[N],maxn;
//maxn记录能够获得的最高成绩 
long double minn[N],sum[N],ans[N];
//minn[i]表示从下标i开始(含i)往后的得分的最小值,sum[i]表示从下标i开始(含i)往后的得分之和,ans[i]表示删除前k-1个元素后的答案
int main() {
	cin>>n;
	for (int i=1;i<=n;i++)cin>>a[i];
	minn[n]=a[n];
	for (int i=n-1;i>=1;i--)minn[i]=min(minn[i+1],a[i]);	//求minn 
	for (int i=n-1;i>=1;i--)sum[i]=sum[i+1]+a[i];			//求sum 
	for (int k=2;k<=n-1;k++) {								//求ans 
		ans[k]=(sum[k+1]-minn[k+1])/(n-k)-1;				
		maxn=max(maxn,ans[k]);								//求maxn 
	}
	for (int i=1;i<=n;i++)if(ans[i]==maxn)cout<<i<<endl;	//遍历ans数组,如果ans[i]是最高分,就输出i 
	return 0;
}
2025/8/2 20:12
加载中...