function Main (input) {
  const inputs = input.split(/\s/g).filter((value) => value).map((value) => parseInt(value));
  const prices = {
    A: inputs[0],
    B: inputs[1],
    AB: inputs[2]
  };
  const nums = {
    A: inputs[3],
    B: inputs[4]
  };
  const patterns = [
    // そのまま買う
    Object.keys(nums).map((key) => nums[key] * prices[key]).reduce((prev, current) => prev + current),
    // Aピザの枚数の倍ABを買う
    nums.A * 2 * prices.AB + (nums.A < nums.B ? (nums.B - nums.A) * prices.B : 0),
    // Bピザの枚数の倍ABを買う
    nums.B * 2 * prices.AB + (nums.B < nums.A ? (nums.A - nums.B) * prices.A : 0),
    // AとBが同じ枚数でABだけ買う
    nums.A === nums.B ? nums.A * 2 * prices.AB : 0,
  ].filter((value) => value > 0);

  console.log('%s', Math.min(...patterns));
  // console.log('%s', patterns);
}

Main(require("fs").readFileSync("/dev/stdin", "utf8"));
