fork download
  1. #include<iostream>
  2. using namespace std;
  3. bool can(long long n , long long k,long long mid)
  4. {
  5. long long result=mid;
  6. while(mid/k>0)
  7. {
  8. result+=(mid/k);
  9. k*=k;
  10. if(result>=n)
  11. {
  12. return true;
  13. }
  14. }
  15. return result>=n;
  16. }
  17. int main()
  18. {
  19. long long n,k;
  20. cin>>n>>k;
  21. long long l=1 , r=n ,mid ,ans;
  22. while(l<=r)
  23. {
  24. mid=(l+r)/2;
  25. if(can(n , k ,mid))
  26. {
  27. ans=mid;
  28. r=mid-1;
  29. }else
  30. {
  31. l=mid+1;
  32. }
  33. }
  34. cout<<ans<<endl;
  35. return 0;
  36. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
94786872361376