#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 6;
const int T = (1 << 21) + 123;
long long a[T], b[T], s[T];
int p[N];
int n, m, d;
int i, j, k, l;
void upd(int i, int j, long long A, long long B, int l = 0, int r = d - 1,
         int q = 1) {
  if (!(i <= j && l <= r && l <= i && j <= r)) return;
  if (i == l && j == r) {
    a[q] += A;
    b[q] += B;
    s[q] += (A + A + B * (j - i)) * (j - i + 1LL) / 2;
  } else {
    int m = (l + r) >> 1;
    if (i <= m) upd(i, ((j) < (m) ? (j) : (m)), A, B, l, m, q * 2);
    if (j > m)
      upd(((i) > (m + 1) ? (i) : (m + 1)), j,
          (i > m) ? A : (A + B * (m - i + 1LL)), B, m + 1, r, q * 2 + 1);
    s[q] = s[q * 2] + s[q * 2 + 1] +
           (a[q] + a[q] + b[q] * (r - l)) * (r - l + 1LL) / 2;
  }
}
long long sum(int i, int j, int l = 0, int r = d - 1, int q = 1) {
  if (!(i <= j && l <= r && l <= i && j <= r)) return 0;
  if (i == l && j == r) {
    return s[q];
  } else {
    int m = (l + r) >> 1;
    a[q * 2] += a[q];
    b[q * 2] += b[q];
    s[q * 2] += (a[q] + a[q] + b[q] * (m - l)) * (m - l + 1) / 2;
    a[q * 2 + 1] += a[q] + b[q] * (m - l + 1LL);
    b[q * 2 + 1] += b[q];
    s[q * 2 + 1] +=
        (a[q] + b[q] * (m - l + 1LL) + a[q] + b[q] * (r - l)) * (r - m) / 2;
    a[q] = b[q] = 0;
    long long s1 = 0;
    if (i <= m) s1 = sum(i, ((j) < (m) ? (j) : (m)), l, m, q * 2);
    long long s2 = 0;
    if (j > m)
      s2 = sum(((i) > (m + 1) ? (i) : (m + 1)), j, m + 1, r, q * 2 + 1);
    return s1 + s2;
  }
}
int z[T];
void upd2(int i) {
  for (i += d; i; i >>= 1) ++z[i];
}
int sum2(int i, int j) {
  int res = 0;
  for (i += d, j += d; i <= j; i >>= 1, j >>= 1) {
    if (i & 1) {
      res += z[i];
      ++i;
    }
    if (j + 1 & 1) {
      res += z[j];
      --j;
    }
  }
  return res;
}
pair<int, int> qq[N];
int _n;
int main() {
  scanf("%d", &n);
  _n = n;
  for (i = 1; i <= n; ++i) {
    scanf("%d", &p[i]);
    qq[i - 1] = make_pair(p[i], i);
  }
  sort(qq, qq + n);
  n += 2;
  for (d = 1; d < n; d <<= 1)
    ;
  upd2(0);
  for (i = n - 1; i < d; ++i) {
    upd2(i);
  }
  for (int it = 0; it < n - 2; ++it) {
    k = qq[it].first;
    i = qq[it].second;
    int sl, sr, il, ir;
    sl = sum2(0, i - 1);
    for (il = 1; il < d;)
      if (z[il * 2] >= sl)
        il = il * 2;
      else {
        sl -= z[il * 2];
        il = il * 2 + 1;
      }
    sr = sum2(i + 1, d - 1);
    for (ir = 1; ir < d;)
      if (z[ir * 2 + 1] >= sr)
        ir = ir * 2 + 1;
      else {
        sr -= z[ir * 2 + 1];
        ir = ir * 2;
      }
    il -= d;
    ir -= d;
    int m1 = ((((i - il) > 0 ? (i - il) : -(i - il))) >
                      (((i - ir) > 0 ? (i - ir) : -(i - ir)))
                  ? (((i - il) > 0 ? (i - il) : -(i - il)))
                  : (((i - ir) > 0 ? (i - ir) : -(i - ir))));
    int m2 = ((((i - il) > 0 ? (i - il) : -(i - il))) <
                      (((i - ir) > 0 ? (i - ir) : -(i - ir)))
                  ? (((i - il) > 0 ? (i - il) : -(i - il)))
                  : (((i - ir) > 0 ? (i - ir) : -(i - ir))));
    int mn = ir - il - 1;
    upd(m1 + 1, mn, 1LL * (mn - m1) * k, -k);
    upd(m2, m1, 1LL * k * m2, 0);
    upd(1, m2 - 1, k, k);
    upd2(i);
  }
  scanf("%d", &m);
  while (m--) {
    scanf("%d", &k);
    printf("%.9lf\n", sum(k, k) / (_n - k + 1.));
  }
  return 0;
}
