本题样例构造很贼,
被坑实例:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>
#define _f first
#define _s second
using namespace std;
struct queue {
long long q[100000];
int tail, head;
inline void init() { head = 0, tail = 0; }
inline void pub(int n) { q[++tail] = n; }
inline void puf(int n) { q[head--] = n; }
inline void gte() { tail = head - 1; }
inline void pob() { --tail; }
inline void pof() { head++; }
inline int f() { return q[head + 1]; }
inline int b() { return q[tail]; }
inline int s() { return tail - head; }
}q;
long long n, s, t;
long long a[1000000];
bool cmp(long long mid)
{
q.init();
int j = 1;
for (int i = s; i <= n; i++)
{
while (q.s() && q.b() > a[i])
q.pob();
q.pub(i);
if (j + t <= i)
j++;
if ((a[i] - a[j - 1]) * 10000ll > mid * (i - j + 1ll))
return true;
}
return false;
}
int main()
{
cin >> n >> s >> t;
for (int i = 1, x; i <= n; i++)
cin >> x, a[i] = a[i - 1] + x;
long long l = -10000000, r = 10000000;
while (l <= r)
if (cmp(l + r >> 1))
l = (l + r >> 1) + 1;
else
r = (l + r >> 1) - 1;
printf("%.3f", l / 10000.0);
}