dp greedy *1400

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
using namespace std;
#define ll long long int
long long int mod= 1e9+7;

int main(){

ll n,k,a,b;
cin>>n>>k>>a>>b;
ll ans=0;
if(n<k){
   cout<<a*n-a;
   return 0;
}
else if(n==k){
   cout<<min(n*a-a,b);
   return 0;
}else if(k==1){
   cout<<(n-1)*a;
   return 0;
}

 while(n>1){
   if(n%k==0){
      ll tem=n/k;
      ll cost=0;
      if(tem==1)cost=(k-1)*a;
      else cost=(n-tem)*a;
      ans+=min(b,cost);
      n/=k;
   }else{
      ll x=n/k;

      ll tem=x*k;
      if(tem==0)tem++;
      ans+=(n-tem)*a;
      n=tem;
   }
   // cout<<ans<<" ";
 }
 cout<<ans;
    return 0;
}


Comments

Submit
0 Comments
More Questions

34A - Reconnaissance 2
59A - Word
462B - Appleman and Card Game
1560C - Infinity Table
1605C - Dominant Character
1399A - Remove Smallest
208A - Dubstep
1581A - CQXYM Count Permutations
337A - Puzzles
495A - Digital Counter
796A - Buying A House
67A - Partial Teacher
116A - Tram
1472B - Fair Division
1281C - Cut and Paste
141A - Amusing Joke
112A - Petya and Strings
677A - Vanya and Fence
1621A - Stable Arrangement of Rooks
472A - Design Tutorial Learn from Math
1368A - C+=
450A - Jzzhu and Children
546A - Soldier and Bananas
32B - Borze
1651B - Prove Him Wrong
381A - Sereja and Dima
41A - Translation
1559A - Mocha and Math
832A - Sasha and Sticks
292B - Network Topology