/*
* Problem :: 16917 / 양념 반 후라이드 반
*
* Kind :: Math
*
* Insight
* - 어떻게 하면 더 싸게 먹을 수 있을까?
* + (양념 치킨 한 마리 가격 + 후라이드 치킨 한 마리 가격) ? 반반 치킨 두 마리 가격
* ? 가 > 라면, 반반 치킨 두 마리 시키는 게 이득이다
* ? 가 < 라면, 양념 한 마리, 후라이드 한 마리 각각 시키는 게 이득이다
* # 양념 치킨만 추가로 시켜야 하는 경우
* 양념 치킨 한 마리 가격 ? 반반 치킨 두 마리 가격
* ? 가 > 라면, 양념 치킨 한 마리 시키는 게 이득이다
* ? 가 < 라면, 반반 치킨 두 마리 시키는 게 이득이다
* # 후라이드 치킨만 추가로 시켜야 하는 경우
* 후라이드 치킨 한 마리 가격 ? 반반 치킨 두 마리 가격
* ? 가 > 라면, 후라이드 치킨 한 마리 시키는 게 이득이다
* ? 가 < 라면, 반반 치킨 두 마리 시키는 게 이득이다
*
* Point
* - 현실은 절대 그럴리가 없지만,
* 반반 치킨이 엄청나게 싼 경우를 고려해야 한다
* + A=5000, B=5000, C=1 이고 X=100, Y=200 이라하면
* 그냥 반반 치킨으로 다 시키는 게 이득이다
*
* - 100,000 * 5,000 = 5*10^8
* Overflow 위험이 있어서 int 대신 long 을 사용하였다
*
* - 치킨 먹고 싶다...
*/
//
// BOJ
// ver.C++
//
// Created by GGlifer
//
// Open Source
#include <iostream>
using namespace std;
#define endl '\n'
// Set up : Global Variables
/* None */
// Set up : Functions Declaration
/* None */
int main()
{
// Set up : I/O
ios::sync_with_stdio(false);
cin.tie(nullptr);
// Set up : Input
long A, B, C, X, Y;
cin >> A >> B >> C >> X >> Y;
// Process
long ans = 0; /* 구매하는 비용의 최솟값 */
/* 양념 한 마리, 후라이드 한 마리 각각 구매하는 것보다 반반 두 마리 구매하는 것이 싸다면 */
if (2*C <= A+B) {
long Z = min(X, Y); /* 반반 으로 같이 구매해야 하는 치킨의 수 */
ans += Z * 2*C; /* Z 마리를 반반 으로 구매 */
X -= Z; /* Z 마리 구매 후, 구매해야 하는 남은 양념 치킨의 수 */
Y -= Z; /* Z 마리 구매 후, 구매해야 하는 남은 후라이드 치킨의 수 */
/* X, Y 둘 중 하나는 0이 됨 */
if (X > 0) { /* 남은 양념 치킨 구매 */
/* 양념 한 마리 사는 것보다 반반 두 마리 구매하는 것이 싸다면 반반 으로 구매
* 그렇지 않다면, 양념 으로 구매 */
ans += (2*C <= A) ? X * 2*C : X * A;
}
if (Y > 0) { /* 남은 후라이드 치킨 구매 */
/* 후라이드 한 마리 사는 것보다 반반 두 마리 구매하는 것이 싸다면 반반 으로 구매
* 그렇지 않다면, 후라이드 로 구매 */
ans += (2*C <= B) ? Y * 2*C : Y * B;
}
}
/* 양념 한 마리, 후라이드 한 마리 각각 구매하는 것보다 반반 두 마리 구매하는 것이 비싸다면 */
else {
/* 반반 안삼, 후라이드와 양념 각각 구매 */
ans += X * A;
ans += Y * B;
}
// Control : Output
cout << ans << endl;
}
// Helper Functions
/* None */