93分求助
查看原帖
93分求助
466146
生化之神yyj楼主2022/7/17 12:19

第三个点总是WA,有大佬能告诉我为什么吗?

#include<bits/stdc++.h>
using namespace std;
int n,m,i,l,r,la,ans;
float a[100005],b[100005],c[100005],ma;
int main(){
	cin>>n>>m;
	cin>>a[0];
	b[0]=a[0];
	for(i=1;i<n;i++)
	{
		cin>>a[i];
		b[i]=b[i-1]+a[i];
	}
	for(i=0;i<n-m+1;i++)
	{
		l=m-1+i; r=n-1;
		c[i]=(b[l]-b[i-1])/(l-i+1);
		la=1;
		while(r-l>0)
		{
			if(la==1)
			{
				if((b[r]-b[l])/(r-l)>c[i])
				{
					la=2; c[i]=(b[r]-b[i-1])/(r-i+1);
					l=(l+r+1)/2;
				}
				else
				{
					r=(l+r)/2;
				}
			}
			else
			{
				if((b[r]-b[l])/(r-l)>c[i])
				{
					l=(l+r+1)/2;
				}
				else
				{
					la=1; c[i]=(b[l]-b[i-1])/(l-i+1);
					r=(l+r)/2;
				}
			}
		}
	}
	ma=c[0];
	for(i=1;i<n-m+1;i++)
	{
		if(c[i]>ma)
		ma=c[i];
	}
	ans=1000*ma;
	cout<<ans;
	return 0;
}

2022/7/17 12:19
加载中...