求助80分,WA on #7#9
查看原帖
求助80分,WA on #7#9
897131
yangdezuo楼主2024/10/7 11:06

求助哇

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,x,s[300005],a[300005],t,h,ss,tt;
double ans;
queue<int>q;
double f(int x,int y){
	return (s[y]-s[x])*1.0/(y-x);
}
signed main(){
	cin>>n>>ss>>tt;
	for(int i=1;i<=n;i++){
		cin>>x;
		s[i]=s[i-1]+x;
	}
	for(int i=ss;i<=tt;i++){
//		while(q.size()>=2&&k(i-m,))
		while(t-h>=2&&f(i-ss,a[t-1])<f(i-ss,a[t-2])) t--;
		a[t++]=i-ss;
		while(t-h>=2&&f(i,a[h])<f(i,a[h+1])) h++;
		ans=max(ans,f(i,a[h]));
	}
	printf("%.3lf",ans);
}
2024/10/7 11:06
加载中...