CodeFoeces-940B

题目

原题链接:B. Our Tanya is Crying Out Loud

题意

给出n,k,a,b四个数,每次可执行两种操作:
1.n-=1,每次消耗a;
2.n/=k,每次消耗b.
问最少的消耗使n等于1。
每次比较减和除哪个便宜,若不能除则减到能除为止。

代码

#include
using namespace std;
int main() {
    __int64 n,k,a,b,ans=0;
    cin>>n>>k>>a>>b;
    if(n=k) {
            if(n%k==0) {
                if(b > a*(n-(n/k)) ) {
                    ans+=a*(n-(n/k));
                    n=(n/k);
                }else{
                    n/=k;
                    ans+=b;
                }
            } else {
                ans+=(n-(n/k)*k)*a;
                n=(n/k)*k;
            }
        }
        ans+=(n-1)*a;
        cout<

你可能感兴趣的:(CodeFoeces-940B)