https://www.acmicpc.net/problem/1459
그리디
ㅋㅋ 경우의수 정말 싫다 (대충 피그렛 우는짤)
크게 두가지로 나눌 수 있다
(X+Y)*W
가 답min(X,Y)*S
만큼 가고 abs(X-Y)만큼 이동해야 한다.abs(X-Y)*S
만큼 이동abs(X-Y)*w
만큼 이동abs(X-Y-1)*S
만큼 이동 후 w만큼 이동#include <iostream>
using namespace std;
int main(){
long long X,Y,W,S;
cin>>X>>Y>>W>>S;
long long case_A = (X+Y)*W;
long long case_B = min(X,Y)*S;
case_B += min(abs(X-Y)*W, (abs(X-Y)%2==1 ? (abs(X-Y)-1)*S + W : abs(X-Y)*S));
cout<<min(case_A, case_B);
}