90分求调
查看原帖
90分求调
702659
l0k9j8h7楼主2024/8/17 19:15
#include<iostream>
#include<queue>
using namespace std;
#define int long long
signed main(){
	int n,k,l;
	cin>>n>>k>>l;int sum=0;
	queue<int> q,q2;
	int sum2=0,moresize=0;
	long double ans=0;
	for(int i=0;i<n;i++){
		int a;
		cin>>a;
		q.push(a);
		sum+=a;
		if(q.size()>k){
			sum-=q.front();
			moresize++;
			sum2+=q.front();
			q2.push(q.front());
			q.pop();
		}
		while(moresize+q.size()>l||1.0*sum2/moresize+1E-6<1.0*sum/q.size()){
			sum2-=q2.front();
			q2.pop();
			moresize--;
			
		}
		if(q.size()==k)ans=max(ans,(long double)(1.0)*(sum2+sum)/(moresize+q.size()));
	}
	printf("%.3Lf",ans);
}

求助wa on #9 line1colmun6,是不是因为精度问题

2024/8/17 19:15
加载中...