You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
516 B
Racket
20 lines
516 B
Racket
3 years ago
|
#lang br
|
||
|
(require racket/file rackunit)
|
||
|
|
||
|
(match-define (cons target buses-all)
|
||
|
(for/list ([tok
|
||
|
(in-port read
|
||
|
(open-input-string
|
||
|
(string-replace (file->string "13.rktd") "," " ")))])
|
||
|
tok))
|
||
|
|
||
|
(define buses (filter integer? buses-all))
|
||
|
|
||
|
(define (overshoot bus)
|
||
|
(for/last ([i (in-naturals)]
|
||
|
#:final (> (* i bus) target))
|
||
|
(- (* i bus) target)))
|
||
|
|
||
|
(define winner (argmin overshoot buses))
|
||
|
|
||
|
(check-equal? (* winner (overshoot winner)) 246)
|