P1419 寻找段落
评测记录
#include<bits/stdc++.h>
using namespace std;
#define N 100005
#define db double
int n,S,T;
int a[N],b[N];
inline int read(){
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-') f=-f; ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-48; ch=getchar();}
return x*f;
}
db ans;
int l,r;
int main(){
n=read(),S=read(),T=read();
for(int i=1;i<=n;i++) a[i]=read(),b[i]=b[i-1]+a[i];
ans=(b[S]-b[0])*1.0/S;
l=1,r=S;
while(r<=n){
db aev;
if(r-l+1>T) l++;
while(r-l+1>=S){
aev=(b[r]-b[l-1])*1.0/(r-l+1);
ans=max(ans,aev);
if(a[l]<aev){
if(r-l+1>S) l++;
}
else break;
}
r++;
}
printf("%.3lf",ans);
return 0;
}