#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000000 + 10;
int n, m, h[MAXN], l[MAXN], r[MAXN];
void calc(int *l, bool flag) {
  l[1] = 0;
  for (int i = 2; i <= n; ++i) {
    if (h[i - 1] + flag <= h[i]) {
      l[i] = i - 1;
    } else {
      l[i] = l[i - 1];
      while (l[i] > 0 && h[l[i]] + flag > h[i]) l[i] = l[l[i]];
    }
  }
}
void init() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) scanf("%d", &h[i]);
  calc(l, 0);
  reverse(h + 1, h + n + 1);
  calc(r, 1);
  reverse(h + 1, h + n + 1);
  reverse(r + 1, r + n + 1);
  for (int i = 1; i <= n; ++i) r[i] = n - r[i] + 1;
}
struct seg_tree {
  int l, r;
  long long a, b;
} t[MAXN * 4];
void Build(int x, int l, int r) {
  t[x].l = l, t[x].r = r;
  t[x].a = t[x].b = 0;
  if (l == r) return;
  Build((x << 1), l, ((t[x].l + t[x].r) >> 1)),
      Build(((x << 1) + 1), ((t[x].l + t[x].r) >> 1) + 1, r);
}
void Insert(int x, int l, int r, long long a, long long b) {
  if (t[x].l == l && t[x].r == r) {
    t[x].a += a, t[x].b += b;
    return;
  }
  if (r <= ((t[x].l + t[x].r) >> 1))
    Insert((x << 1), l, r, a, b);
  else if (l > ((t[x].l + t[x].r) >> 1))
    Insert(((x << 1) + 1), l, r, a, b);
  else
    Insert((x << 1), l, ((t[x].l + t[x].r) >> 1), a, b),
        Insert(((x << 1) + 1), ((t[x].l + t[x].r) >> 1) + 1, r, a, b);
}
long long CC[MAXN];
int tot;
void DFS(int x, long long a, long long b) {
  a += t[x].a, b += t[x].b;
  if (t[x].l == t[x].r) {
    CC[++tot] = a * t[x].l + b;
    return;
  }
  DFS((x << 1), a, b), DFS(((x << 1) + 1), a, b);
}
void solve() {
  Build(1, 1, n);
  for (int i = 1; i <= n; ++i) {
    int L = i - l[i] - 1, R = r[i] - i - 1;
    if (L > R) swap(L, R);
    if (L) Insert(1, 1, L, h[i], 0);
    Insert(1, L + 1, R + 1, 0, (long long)h[i] * (L + 1));
    if (R && L)
      Insert(1, R + 2, L + R + 1, -h[i], (long long)h[i] * (R + 2 + L));
  }
  DFS(1, 0, 0);
  scanf("%d", &m);
  for (int i = 1; i <= m; ++i) {
    int x;
    scanf("%d", &x);
    printf("%.9lf\n", (double)CC[x] / (n - x + 1));
  }
}
int main() {
  init();
  solve();
  fclose(stdin);
  fclose(stdout);
  return 0;
}
