# 2次元dpではRE、横に大きすぎるのでdp_old, dp_newを使う # dp[-1のとき, +1のとき]のf(s)最小値 N, A, B = map(int, input().split()) dp_old = [0, 0] for i in range(N): if i == 0: dp_new = [-B*(-1), -B*(+1)] else: dp_new = [min(dp_old[0]+A-B*(-1),dp_old[1]-A-B*(-1)), min(dp_old[0]-A-B*(+1), dp_old[1]+A-B*(+1))] dp_old = dp_new #print(dp[i]) ans = min(dp_old) print(ans)