/* 数据不清空, 多测不读完, 边界不特判, 贪心不证明, D P 顺序错, 大小少等号, 变量不统一, 越界不判断, 调试不注释, 溢出不 l l, 输入顺序错, 你不挂谁挂? 十年 OI 苦, 空留两行泪。 */ #include using namespace std; #define int __int128 //#define eps 1e-9 //#define ENF 1e13 const int N=2e6; const int mod=1e9+7; inline int read() { int x=0,f=1;char ch=getchar(); while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();} while (ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-48;ch=getchar();} return x*f; } void write(int x) { if(x<0)putchar('-'),x=-x; if(x<10)putchar(x+'0'); else write(x/10),putchar(x%10+'0'); } int n; int c,v; int dp[N]; signed main(){ // freopen("ctrlcv.in","r",stdin); // freopen("ctrlcv.out","w",stdout); n=read(); c=read(),v=read(); dp[1]=0; n<<=1; int U=1; int u=0; while(U<=n){ U*=2; u++; } u++; int all=0; for(int i=1;i<=n;++i)dp[i]=LONG_LONG_MAX; dp[1]=0; for(int k=1;k<=n;k++){ all=k; int sum=0; for(int j=all*2;j<=n;j+=all){ sum++; dp[j]=min(dp[j],dp[all]+c+v*sum); } } int ans=LONG_LONG_MAX; for(int i=n/2;i<=n;i++)ans=min(ans,dp[i]); write(ans); cout<<"\n"; return 0; } // 借谦哥与「爱莉希雅」之力,AC此题!! // 某一日,祂从天坠落。人们抬头仰望,于是看见了星空。 // 星月送来神的女儿,她愿成为人的伴侣。 // 长风化作她的轺车,四海落成她的园圃。鸟雀衔来善的种子,百花编织爱的颂歌。 // 她便是这样降生于世,行于大地,与人类一同长大,与世界一起发芽。 // 而今,「终焉」之时将至。 // 而今,「归去」之时已至。 // 就此告别吧,美丽的世界。 // 此后,将有「群星」闪耀,因为我如今来过。 // 此后,将有「百花」绽放,因为我从未离去。 // 请将我的箭、我的花、与我的爱,织成新生的种子,带向那枯萎的大地。 // 然后,便让它开出永恒而无瑕的…「人性之华」吧。 // 「我名为爱莉希雅……」 // 「最初的律者,人之律者。」