(use math.const) (define (main args) (let [(n (read))] (let loop [(x n)] (cond [(zero? x) #t] [else (print (solve)) (loop (- x 1))]))) 0) (define (solve) (let [(pl (read-points)) (xmn (cos (* pi/180 171))) (xmx (cos (* pi/180 119)))] ($ apply min $ filter (^a (>= a 0)) $ map ang $ filter (^p (and (< (car p) xmx) (< xmn (car p)) (> (cadr p) 0))) pl))) (define (read-points) (let loop [(n 6) (ls ())] (cond [(zero? n) ls] [else (loop (- n 1) (cons (list (read) (read)) ls))]))) (define (ang x) (let [(eps 0.000001) (a (- (* 180/pi (acos (car x))) 120.0))] (cond [(> eps (abs a)) 0.0] [else a])))