#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define eps 0.00000001 #define LONG_INF 10000000000000000 #define GOLD 1.61803398874989484820458 #define MAX_MOD 1000000007 #define REP(i,n) for(long long i = 0;i < n;++i) long long n; long long c, v; int main() { cin >> n >> c >> v; long long ans = 1000000000000; for (int i = 0;i < n;++i) { long long now_length = 100000; for (int q = 1;q < n+2;++q) { long long now = 1; long long stock = 1; for (int j = 0;j >= 0;++j) { stock += now; if ((j + 1) % q == 0&&(j+1)/q <= i) { now = stock; } if (stock >= n) { if (now_length > j+1) { now_length = j+1; break; } else goto ending; } } } ending:; ans = min(ans, now_length*v + c*i); } cout << ans+c << endl; return 0; }