d13
parent
2b0fdd766b
commit
379cd904b5
@ -0,0 +1,25 @@
|
||||
#lang reader "../aoc-lang.rkt"
|
||||
(require (for-syntax racket/string racket/sequence) racket/dict)
|
||||
(provide (rename-out [#%mb #%module-begin]) ★ ★★)
|
||||
|
||||
(define-macro (#%mb (STARS) (DEPTH: RANGE) ...)
|
||||
(with-pattern ([(DEPTH ...)
|
||||
(for/list ([id (in-syntax #'(DEPTH: ...))])
|
||||
(string->number (string-trim (symbol->string (syntax->datum id)) ":")))])
|
||||
#'(#%module-begin (STARS '(DEPTH ...) '(RANGE ...)))))
|
||||
|
||||
(define (caught? depth range [delay 0])
|
||||
(zero? (modulo (+ depth delay) (* 2 (sub1 range)))))
|
||||
|
||||
(define (★ ds rs)
|
||||
(for/sum ([d (in-list ds)]
|
||||
[r (in-list rs)]
|
||||
#:when (caught? d r))
|
||||
(* d r)))
|
||||
|
||||
(define (★★ ds rs)
|
||||
(for/first ([delay (in-naturals)]
|
||||
#:unless (for/or ([d (in-list ds)]
|
||||
[r (in-list rs)])
|
||||
(caught? d r delay)))
|
||||
delay))
|
@ -0,0 +1,44 @@
|
||||
#lang reader "main.rkt" ★ ; 1612
|
||||
0: 3
|
||||
1: 2
|
||||
2: 4
|
||||
4: 6
|
||||
6: 4
|
||||
8: 6
|
||||
10: 5
|
||||
12: 6
|
||||
14: 8
|
||||
16: 8
|
||||
18: 8
|
||||
20: 6
|
||||
22: 12
|
||||
24: 8
|
||||
26: 8
|
||||
28: 10
|
||||
30: 9
|
||||
32: 12
|
||||
34: 8
|
||||
36: 12
|
||||
38: 12
|
||||
40: 12
|
||||
42: 14
|
||||
44: 14
|
||||
46: 12
|
||||
48: 12
|
||||
50: 12
|
||||
52: 12
|
||||
54: 14
|
||||
56: 12
|
||||
58: 14
|
||||
60: 14
|
||||
62: 14
|
||||
64: 14
|
||||
70: 10
|
||||
72: 14
|
||||
74: 14
|
||||
76: 14
|
||||
78: 14
|
||||
82: 14
|
||||
86: 17
|
||||
88: 18
|
||||
96: 26
|
@ -0,0 +1,44 @@
|
||||
#lang reader "main.rkt" ★★ ; 3907994
|
||||
0: 3
|
||||
1: 2
|
||||
2: 4
|
||||
4: 6
|
||||
6: 4
|
||||
8: 6
|
||||
10: 5
|
||||
12: 6
|
||||
14: 8
|
||||
16: 8
|
||||
18: 8
|
||||
20: 6
|
||||
22: 12
|
||||
24: 8
|
||||
26: 8
|
||||
28: 10
|
||||
30: 9
|
||||
32: 12
|
||||
34: 8
|
||||
36: 12
|
||||
38: 12
|
||||
40: 12
|
||||
42: 14
|
||||
44: 14
|
||||
46: 12
|
||||
48: 12
|
||||
50: 12
|
||||
52: 12
|
||||
54: 14
|
||||
56: 12
|
||||
58: 14
|
||||
60: 14
|
||||
62: 14
|
||||
64: 14
|
||||
70: 10
|
||||
72: 14
|
||||
74: 14
|
||||
76: 14
|
||||
78: 14
|
||||
82: 14
|
||||
86: 17
|
||||
88: 18
|
||||
96: 26
|
@ -0,0 +1,5 @@
|
||||
#lang reader "main.rkt" ★ ; 24
|
||||
0: 3
|
||||
1: 2
|
||||
4: 4
|
||||
6: 4
|
@ -0,0 +1,5 @@
|
||||
#lang reader "main.rkt" ★★
|
||||
0: 3
|
||||
1: 2
|
||||
4: 4
|
||||
6: 4
|
Reference in New Issue