(define (pocket-money x a b) (let ([n (quotient x a)]) (+ (* n (- b 1)) x))) (define (over-c? a b c) (lambda (x) (>= (pocket-money x a b) c))) (define (bsearch f l r) (cond [(= 1 (- r l)) r] [else (let ([m (quotient (+ l r) 2)]) (if (f m) (bsearch f l m) (bsearch f m r)))])) (define (main args) (let* ([a (read)] [b (read)] [c (read)]) (print (bsearch (over-c? a b c) 0 c))) 0)