枚举即可,可以算出选第一种方案的最大个数,那么枚举选他的次数即可,剩下的物品个数再看能组成多少种第二种方案。

最后选出最大的即可。

import sys
from collections import Counter

# 输入加速
input = sys.stdin.readline
if __name__ == '__main__':
    n,m,a,b = map(int,input().split())
    cnt1 = min(n // 2,m) 
    res = min(n,m // 2) * b
    #从a种逐渐扣
    for i in range(cnt1 + 1):
        r1 = n - i * 2
        r2 = m - i
        res = max(res,a * i + b * min(r1,r2 // 2))
    print(res)