#include <bits/stdc++.h>
using namespace std;
template <class T>
T min(T a, T b, T c) {
  return min(a, min(b, c));
}
template <class T>
T min(T a, T b, T c, T d) {
  return min(a, min(b, min(c, d)));
}
template <class T>
T max(T a, T b, T c) {
  return max(a, max(b, c));
}
template <class T>
T max(T a, T b, T c, T d) {
  return max(a, max(b, max(c, d)));
}
bool cmp(const pair<int, int>& a, const pair<int, int>& b) {
  return (a.first > b.first || (a.first == b.first && a.second >= b.second));
}
long long GCD(long long a, long long b) { return (a % b) ? GCD(b, a % b) : b; }
int f[7][100007];
int main() {
  int n, a, b, c;
  scanf("%d%d%d%d", &n, &a, &b, &c);
  --n;
  f[0][0] = 0;
  f[1][0] = f[2][0] = 1000000000LL;
  for (int i = (1); i <= (n); ++i) {
    f[0][i] = min(f[2][i - 1] + b, f[1][i - 1] + a);
    f[1][i] = min(f[2][i - 1] + c, f[0][i - 1] + a);
    f[2][i] = min(f[1][i - 1] + c, f[0][i - 1] + b);
  }
  cout << min(f[0][n], f[1][n], f[2][n]) << endl;
  return 0;
}
