Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- long long powl(int a, int n) {
- if (n <= 1) return 1;
- if (n % 2 == 1) return powl (a, n-1) * a;
- else {
- int b = powl (a, n/2);
- return b * b;
- }
- }
- long long log( long long n, long long a){
- if(n == 1) return 1;
- return 1 + log(n/a, a);
- }
- long long geoma(long long cnt, long long a , long long b){
- return (a * (powl(b,cnt) - 1) / (b - 1));
- }
- int main(){
- freopen("in.txt","r",stdin);
- long long n ,a ,b,mx;
- cin >> n >> a >> b >> mx;
- if (b == 1){
- cout << min(mx/a , n);
- return 0;
- }
- long long ans = 0;
- // cnt =
- long long cnt = log(9 * mx + (a/(b-1)), b);
- if (cnt > n ){
- cnt = n;
- }
- while(cnt){
- if (geoma(cnt , a , b) <= mx){
- cout << cnt;
- return 0;
- }
- cnt --;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement