#include <bits/stdc++.h>
void doubleIntSort(double d[], int m[], int s) {
  int i, j, r;
  double k1, k2, t;
  if (s <= 1) return;
  k1 = (d[0] + d[s - 1]) / 2.0;
  k2 = k1 + 1e-10;
  k1 -= 1e-10;
  i = -1;
  j = s;
  for (;;) {
    while (d[++i] < k1)
      ;
    while (d[--j] > k2)
      ;
    if (i >= j) break;
    t = d[i];
    d[i] = d[j];
    d[j] = t;
    r = m[i];
    m[i] = m[j];
    m[j] = r;
  }
  doubleIntSort(d, m, i);
  doubleIntSort(d + j + 1, m + j + 1, s - j - 1);
}
int n;
int nf, ne, ns;
int rf, re, rs;
double Rf, Re, Rs;
int df, de;
int h[21];
double res;
double x[100];
int ev[100];
int F, E, S;
void calc(void) {
  int i, j, k;
  double w, tmp;
  if (n % 2 == 0) {
    i = h[0] + h[1] * 10;
    j = h[n - 2] + h[n - 1] * 10;
    if (i > j) return;
  }
  F = E = S = 0;
  for (i = 0; i < n; i++) {
    if (h[i] == 0) {
      x[2 * i] = (i / 2) - Rf;
      x[2 * i + 1] = (i / 2) + Rf;
      ev[2 * i] = 1;
      ev[2 * i + 1] = -1;
    }
    if (h[i] == 1) {
      x[2 * i] = (i / 2) - Re;
      x[2 * i + 1] = (i / 2) + Re;
      ev[2 * i] = 2;
      ev[2 * i + 1] = -2;
    }
    if (h[i] == 2) {
      x[2 * i] = (i / 2) - Rs;
      x[2 * i + 1] = (i / 2) + Rs;
      ev[2 * i] = 3;
      ev[2 * i + 1] = -3;
    }
  }
  doubleIntSort(x, ev, 2 * n);
  tmp = 0;
  for (i = 0; i < 2 * n - 1; i++) {
    w = x[i + 1] - x[i];
    if (ev[i] == 1) F++;
    if (ev[i] == -1) F--;
    if (ev[i] == 2) E++;
    if (ev[i] == -2) E--;
    if (ev[i] == 3) S++;
    if (ev[i] == -3) S--;
    tmp += (F * df + E * de) * (w * (S + 1));
  }
  if (res < tmp) res = tmp;
}
void brute(int depth) {
  if (depth == n) calc();
  if (nf > 0) {
    h[depth] = 0;
    nf--;
    if (depth % 2 == 0 || h[depth - 1] <= h[depth]) brute(depth + 1);
    nf++;
  }
  if (ne > 0) {
    h[depth] = 1;
    ne--;
    if (depth % 2 == 0 || h[depth - 1] <= h[depth]) brute(depth + 1);
    ne++;
  }
  if (ns > 0) {
    h[depth] = 2;
    ns--;
    if (depth % 2 == 0 || h[depth - 1] <= h[depth]) brute(depth + 1);
    ns++;
  }
}
int main() {
  int i, j, k, l, m;
  res = 0;
  scanf("%d%d%d", &nf, &ne, &ns);
  n = nf + ne + ns;
  scanf("%d%d%d", &rf, &re, &rs);
  scanf("%d%d", &df, &de);
  Rf = sqrt(rf * rf - 1);
  if (rf == 1) Rf = 0;
  Re = sqrt(re * re - 1);
  if (re == 1) Re = 0;
  Rs = sqrt(rs * rs - 1);
  if (rs == 1) Rs = 0;
  brute(0);
  printf("%.15f\n", res);
  return 0;
}
