(define (read-point n) (let loop ([ee 0] [eo 0] [oe 0] [oo 0] [c n]) (if (zero? c) (values ee eo oe oo) (let* ([x (read)] [y (read)]) (cond [(and (even? x) (even? y)) (loop (+ ee 1) eo oe oo (- c 1))] [(and (even? x) (odd? y)) (loop ee (+ eo 1) oe oo (- c 1))] [(and (odd? x) (even? y)) (loop ee eo (+ oe 1) oo (- c 1))] [else (loop ee eo oe (+ oo 1) (- c 1))]) )))) (define (main args) (let ([n (read)]) (print (receive (ee eo oe oo) (read-point n) (let ([c (+ (quotient ee 2) (quotient eo 2) (quotient oe 2) (quotient oo 2))]) (if (odd? c) "Alice" "Bob"))))) 0)