d11 p1
parent
0c6de6493e
commit
0adb204517
@ -0,0 +1,35 @@
|
||||
#lang debug br
|
||||
(require sugar/cache)
|
||||
|
||||
(define (hundreds-digit x)
|
||||
(quotient (modulo x 1000) 100))
|
||||
|
||||
(define current-serial (make-parameter 0))
|
||||
|
||||
(define/caching (power-at x y)
|
||||
(define rack-id (+ x 10))
|
||||
(- (hundreds-digit (* (+ (* rack-id y) (current-serial)) rack-id)) 5))
|
||||
|
||||
(define (grid-scores size-min [size-max size-min])
|
||||
(for*/list ([side (in-range size-min (add1 size-max))]
|
||||
[x (in-range 1 (- 301 side))]
|
||||
[y (in-range 1 (- 301 side))])
|
||||
(list x y
|
||||
(for*/sum ([x (in-range x (+ side x))]
|
||||
[y (in-range y (+ side y))])
|
||||
(power-at x y)))))
|
||||
|
||||
(define (★)
|
||||
(parameterize ([current-serial 7803])
|
||||
(take (argmax third (grid-scores 3)) 2)))
|
||||
|
||||
#;(grid-scores 1 300)
|
||||
|
||||
#;(define (★★)
|
||||
)
|
||||
#;(★★)
|
||||
|
||||
(module+ test
|
||||
(require rackunit)
|
||||
#;(check-equal? (time (★)) '(20 51))
|
||||
#;(check-equal? (time (★★)) _))
|
Reference in New Issue