diff options
| author | Mistivia <i@mistivia.com> | 2024-02-25 20:11:54 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2024-02-25 20:11:54 +0800 |
| commit | 515ecbf5a20a8e432a998b0a543bedcb1bd64cf4 (patch) | |
| tree | 6353c603a8cf0276553f420205f8d1c730a318ce /06/1.rkt | |
| parent | e191b610c11326b587cf0b01fd6fc37b8d07bb19 (diff) | |
reorg code
Diffstat (limited to '06/1.rkt')
| -rw-r--r-- | 06/1.rkt | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/06/1.rkt b/06/1.rkt new file mode 100644 index 0000000..5496476 --- /dev/null +++ b/06/1.rkt @@ -0,0 +1,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) |
