# 2次元dpでは間に合わないか # dp[i番目][j0 for -1, j1 for +1]でのf(s)最小値 N, A, B = map(int, input().split()) dp = [[0]*2 for i in range(N)] for i in range(N): if i == 0: dp[0][0] = -B*(-1) dp[0][1] = -B*(+1) else: dp[i][0] = min(dp[i-1][0]+A-B*(-1), dp[i-1][1]-A-B*(-1)) dp[i][1] = min(dp[i-1][0]-A-B*(+1), dp[i-1][1]+A-B*(+1)) #print(dp[i]) ans = min(dp[N-1]) print(ans)