https://www.acmicpc.net/problem/1459
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long x = sc.nextLong(); // ์ง์ ์์น x์ขํ
long y = sc.nextLong(); // ์ง์ ์์น y์ขํ
long w = sc.nextLong(); // ๊ฑธ์ด์ ํ ๋ธ๋ก ๊ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ (ํํ ์ด๋)
long s = sc.nextLong(); // ๋๊ฐ์ ์ผ๋ก ํ ๋ธ๋ก์ ๊ฐ๋ก์ง๋ฅด๋ ์๊ฐ
long case1 = (x + y) * w; // case1: ํํ ์ด๋๋ง ํด์ ๊ฐ๋ ๊ฒฝ์ฐ
long case2; // case2: ๋๊ฐ์ ์ผ๋ก ๊ฐ๋ ๊ฒฝ์ฐ
if((x + y) % 2 != 0) { // (x + y)๊ฐ ํ์์ผ ๋ -> ๋ ์ค ํฐ ์์์ 1 ๋นผ์ค ๋งํผ ๋๊ฐ์ ์ผ๋ก ๊ฐ๊ณ , ํํ ์ด๋์ ํ๋ฒ
case2 = (Math.max(x, y) - 1) * s + w;
}
else { // (x + y)๊ฐ ์ง์์ผ ๋ -> ๋ ์ค ํฐ ์๋งํผ ๋๊ฐ์ ์ผ๋ก ๊ฐ
case2 = Math.max(x, y) * s;
}
long case3 = (Math.min(x, y) * s) + (Math.abs(x - y) * w); // case3: ๋๊ฐ์ + ํํ ์ด๋ ๋๋ค ํด์ ๊ฐ๋ ๊ฒฝ์ฐ
// x, y ๊ฐ ์ค ์์ ๊ฐ ๋งํผ๋ง ๋๊ฐ์ ์ผ๋ก, ๋๋จธ์ง(์ ๋๊ฐ)๋งํผ ํํ ์ด๋
long min = Math.min(Math.min(case1, case2), case3); // case๋ค ์ค ๊ฐ์ฅ ์์ ์๊ฐ ์ต์ ์๊ฐ
System.out.println(min);
}
}