fun main(args: Array<String>) {
  // ABセットで買うほうか、AやBを単体で買ったほうが安いのかが鍵となる問題
  // AとBの合計が >= AB か< ABかで分岐が行われる
  val (A,B,C,X,Y) = readLine()!!.split(" ").map{
    it.toInt()
  }
  val min = Math.min(X,Y)
  // 数量が多いほうの値段と数量を結びつけておく
  val maxM = maxMap(X,Y,A,B)
  if(A + B >= 2*C) {
    if(maxM.second >= 2*C) {
      val sum = 2*C*maxM.first
      println(sum)
      return
    }
    val sum = 2*C*min + maxM.second * (maxM.first - min)
    println(sum)
    return
  }
  val sum = A*X + B*Y
  println(sum)
}

// AとX,BとYがむすびついたMapを返して欲しい
fun maxMap(X: Int, Y: Int, A: Int, B: Int): Pair<Int, Int> {
  if(Math.max(X,Y) == X) {
    return Pair(X,A)
  }
  return Pair(Y,B)
}