blob: 549647618aa3a5efb035f89b601ee8a7b88f09cd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#lang racket
(define in (open-input-file "input"))
(define (read-num-list)
(define line (read-line in))
(map
string->number
(string-split
(cadr (string-split (string-trim line) ":")))))
(define times (read-num-list))
(define distances (read-num-list))
(define games (map cons times distances))
(define (calc time hold-time)
(* hold-time (- time hold-time)))
(define (solve time distance)
(define (loop counter hold-time)
(if (> hold-time time)
counter
(if (> (calc time hold-time) distance)
(loop (+ 1 counter) (+ 1 hold-time))
(loop counter (+ 1 hold-time)))))
(loop 0 0))
(display (apply * (map
(λ (x) (solve (car x) (cdr x)))
games)))
(newline)
|