func_code_string: #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;   }   