#include <bits/stdc++.h>
using namespace std;
const int maxn = 22, MAXL = 13;
int nAtt[2], nFrz, num[MAXL];
double res, dAtt[2], rAtt[2], rFrz, common[2][MAXL][MAXL], dp[maxn][maxn];
double cross(double l1, double r1, double l2, double r2) {
  double ll = max(l1, l2), rr = min(r1, r2);
  return max(0.0, rr - ll);
}
double calc() {
  static double cost[2][MAXL];
  for (int p1 = 0; p1 < MAXL; p1++)
    for (int t = 0; t < 2; t++) {
      cost[t][p1] = 0.0;
      for (int p2 = 0; p2 < MAXL; p2++)
        for (int count = 0; count < num[p2]; count++)
          cost[t][p1] += common[t][p1][p2];
    }
  for (int i = 0; i <= nAtt[0]; i++)
    for (int j = 0; j <= nAtt[1]; j++) dp[i][j] = -1.0;
  dp[0][0] = 0.0;
  for (int p = 0; p < MAXL; p++)
    for (int count = 0; count < 2 - num[p]; count++)
      for (int i = nAtt[0]; i >= 0; i--)
        for (int j = nAtt[1]; j >= 0; j--)
          if (dp[i][j] >= 0.0) {
            if (i < nAtt[0])
              dp[i + 1][j] = max(dp[i + 1][j], dp[i][j] + cost[0][p]);
            if (j < nAtt[1])
              dp[i][j + 1] = max(dp[i][j + 1], dp[i][j] + cost[1][p]);
          }
  return dp[nAtt[0]][nAtt[1]];
}
void dfs(int cur, int nf) {
  if (nf == nFrz) {
    double tmp = calc();
    res = max(res, tmp);
    return;
  }
  if (nf > nFrz || cur == MAXL) return;
  dfs(cur + 1, nf);
  num[cur] = 1;
  dfs(cur + 1, nf + 1);
  num[cur] = 2;
  dfs(cur + 1, nf + 2);
  num[cur] = 0;
}
int main() {
  cin >> nAtt[0] >> nAtt[1] >> nFrz;
  cin >> rAtt[0] >> rAtt[1] >> rFrz;
  cin >> dAtt[0] >> dAtt[1];
  rAtt[0] = sqrt(max(rAtt[0] * rAtt[0] - 1.0, 0.0));
  rAtt[1] = sqrt(max(rAtt[1] * rAtt[1] - 1.0, 0.0));
  rFrz = sqrt(rFrz * rFrz - 1.0);
  for (int t = 0; t < 2; t++)
    for (int i = 0; i < MAXL; i++)
      for (int j = 0; j < MAXL; j++) {
        double len = cross(i - rAtt[t], i + rAtt[t], j - rFrz, j + rFrz);
        common[t][i][j] = len * dAtt[t];
      }
  res = 0;
  dfs(0, 0);
  double sum = 0.0;
  for (int t = 0; t < 2; t++) sum += rAtt[t] * dAtt[t] * nAtt[t];
  sum *= 2;
  printf("%.12f\n", res + sum);
  return 0;
}
