import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		//Aの価格
		int A = sc.nextInt();
		//Bの価格
		int B = sc.nextInt();
		//ABの価格
		int C = sc.nextInt();
		//必要なAの枚数
		int X = sc.nextInt();
		//必要なBの枚数
		int Y = sc.nextInt();

		int max = Math.max(X, Y);

		int result = C * 2 * max;

		//Aの枚数
		int x = max;
		//Bの枚数
		int y = max;

		for(int i=0; i<max; i++) {
			//ABを一枚減らしてAかBの片方もしくは両方を一枚増やしたときの合計価格
			int temp = result;
			temp -= 2 * C;
			if(--x<X) {
				x++;
				temp += A;
			}
			if(--y<Y) {
				y++;
				temp += B;
			}

			if(temp >= result) {
				break;
			} else {
				result = temp;
			}
		}

		System.out.println(result);

	}



} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		//Aの価格
		int A = sc.nextInt();
		//Bの価格
		int B = sc.nextInt();
		//ABの価格
		int C = sc.nextInt();
		//必要なAの枚数
		int X = sc.nextInt();
		//必要なBの枚数
		int Y = sc.nextInt();

		int max = Math.max(X, Y);

		int result = C * 2 * max;

		//Aの枚数
		int x = max;
		//Bの枚数
		int y = max;

		for(int i=0; i<max; i++) {
			//ABを一枚減らしてAかBの片方もしくは両方を一枚増やしたときの合計価格
			int temp = result;
			temp -= 2 * C;
			if(--x<X) {
				x++;
				temp += A;
			}
			if(--y<Y) {
				y++;
				temp += B;
			}

			if(temp >= result) {
				break;
			} else {
				result = temp;
			}
		}

		System.out.println(result);

	}



} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		//Aの価格
		int A = sc.nextInt();
		//Bの価格
		int B = sc.nextInt();
		//ABの価格
		int C = sc.nextInt();
		//必要なAの枚数
		int X = sc.nextInt();
		//必要なBの枚数
		int Y = sc.nextInt();

		int max = Math.max(X, Y);

		int result = C * 2 * max;

		//Aの枚数
		int x = max;
		//Bの枚数
		int y = max;

		for(int i=0; i<max; i++) {
			//ABを一枚減らしてAかBの片方もしくは両方を一枚増やしたときの合計価格
			int temp = result;
			temp -= 2 * C;
			if(--x<X) {
				x++;
				temp += A;
			}
			if(--y<Y) {
				y++;
				temp += B;
			}

			if(temp >= result) {
				break;
			} else {
				result = temp;
			}
		}

		System.out.println(result);

	} main {
		Scanner sc = new Scanner(System.in);

		//Aの価格
		int A = sc.nextInt();
		//Bの価格
		int B = sc.nextInt();
		//ABの価格
		int C = sc.nextInt();
		//必要なAの枚数
		int X = sc.nextInt();
		//必要なBの枚数
		int Y = sc.nextInt();

		int max = Math.max(X, Y);

		int result = C * 2 * max;

		//Aの枚数
		int x = max;
		//Bの枚数
		int y = max;

		for(int i=0; i<max; i++) {
			//ABを一枚減らしてAかBの片方もしくは両方を一枚増やしたときの合計価格
			int temp = result;
			temp -= 2 * C;
			if(--x<X) {
				x++;
				temp += A;
			}
			if(--y<Y) {
				y++;
				temp += B;
			}

			if(temp >= result) {
				break;
			} else {
				result = temp;
			}
		}

		System.out.println(result);

	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int A = sc.nextInt(); A sc.nextInt() sc.nextInt sc int B = sc.nextInt(); B sc.nextInt() sc.nextInt sc int C = sc.nextInt(); C sc.nextInt() sc.nextInt sc int X = sc.nextInt(); X sc.nextInt() sc.nextInt sc int Y = sc.nextInt(); Y sc.nextInt() sc.nextInt sc int max = Math.max(X, Y); max Math.max(X, Y) Math.max Math X Y int result = C * 2 * max; result C * 2 * max C * 2 * max C 2 max int x = max; x max int y = max; y max for(int i=0; i<max; i++) {
			//ABを一枚減らしてAかBの片方もしくは両方を一枚増やしたときの合計価格
			int temp = result;
			temp -= 2 * C;
			if(--x<X) {
				x++;
				temp += A;
			}
			if(--y<Y) {
				y++;
				temp += B;
			}

			if(temp >= result) {
				break;
			} else {
				result = temp;
			}
		} int i=0; int i=0; i 0 i<max i max i++ i++ i {
			//ABを一枚減らしてAかBの片方もしくは両方を一枚増やしたときの合計価格
			int temp = result;
			temp -= 2 * C;
			if(--x<X) {
				x++;
				temp += A;
			}
			if(--y<Y) {
				y++;
				temp += B;
			}

			if(temp >= result) {
				break;
			} else {
				result = temp;
			}
		} {
			//ABを一枚減らしてAかBの片方もしくは両方を一枚増やしたときの合計価格
			int temp = result;
			temp -= 2 * C;
			if(--x<X) {
				x++;
				temp += A;
			}
			if(--y<Y) {
				y++;
				temp += B;
			}

			if(temp >= result) {
				break;
			} else {
				result = temp;
			}
		} int temp = result; temp result temp -= 2 * C temp 2 * C 2 C if(--x<X) {
				x++;
				temp += A;
			} --x<X --x x X {
				x++;
				temp += A;
			} x++ x temp += A temp A if(--y<Y) {
				y++;
				temp += B;
			} --y<Y --y y Y {
				y++;
				temp += B;
			} y++ y temp += B temp B if(temp >= result) {
				break;
			} else {
				result = temp;
			} temp >= result temp result {
				break;
			} break; {
				result = temp;
			} result = temp result temp System.out.println(result) System.out.println System.out System System.out result String[] args args public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		//Aの価格
		int A = sc.nextInt();
		//Bの価格
		int B = sc.nextInt();
		//ABの価格
		int C = sc.nextInt();
		//必要なAの枚数
		int X = sc.nextInt();
		//必要なBの枚数
		int Y = sc.nextInt();

		int max = Math.max(X, Y);

		int result = C * 2 * max;

		//Aの枚数
		int x = max;
		//Bの枚数
		int y = max;

		for(int i=0; i<max; i++) {
			//ABを一枚減らしてAかBの片方もしくは両方を一枚増やしたときの合計価格
			int temp = result;
			temp -= 2 * C;
			if(--x<X) {
				x++;
				temp += A;
			}
			if(--y<Y) {
				y++;
				temp += B;
			}

			if(temp >= result) {
				break;
			} else {
				result = temp;
			}
		}

		System.out.println(result);

	}



} public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		//Aの価格
		int A = sc.nextInt();
		//Bの価格
		int B = sc.nextInt();
		//ABの価格
		int C = sc.nextInt();
		//必要なAの枚数
		int X = sc.nextInt();
		//必要なBの枚数
		int Y = sc.nextInt();

		int max = Math.max(X, Y);

		int result = C * 2 * max;

		//Aの枚数
		int x = max;
		//Bの枚数
		int y = max;

		for(int i=0; i<max; i++) {
			//ABを一枚減らしてAかBの片方もしくは両方を一枚増やしたときの合計価格
			int temp = result;
			temp -= 2 * C;
			if(--x<X) {
				x++;
				temp += A;
			}
			if(--y<Y) {
				y++;
				temp += B;
			}

			if(temp >= result) {
				break;
			} else {
				result = temp;
			}
		}

		System.out.println(result);

	}



} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		//Aの価格
		int A = sc.nextInt();
		//Bの価格
		int B = sc.nextInt();
		//ABの価格
		int C = sc.nextInt();
		//必要なAの枚数
		int X = sc.nextInt();
		//必要なBの枚数
		int Y = sc.nextInt();

		int max = Math.max(X, Y);

		int result = C * 2 * max;

		//Aの枚数
		int x = max;
		//Bの枚数
		int y = max;

		for(int i=0; i<max; i++) {
			//ABを一枚減らしてAかBの片方もしくは両方を一枚増やしたときの合計価格
			int temp = result;
			temp -= 2 * C;
			if(--x<X) {
				x++;
				temp += A;
			}
			if(--y<Y) {
				y++;
				temp += B;
			}

			if(temp >= result) {
				break;
			} else {
				result = temp;
			}
		}

		System.out.println(result);

	}



}
