19 lines
543 B
Scheme
19 lines
543 B
Scheme
#!/usr/bin/csi -script
|
|
|
|
(use extras)
|
|
(use srfi-1)
|
|
(use list-comprehensions)
|
|
|
|
(define (sum-matching-offset k xs)
|
|
(let* ((n (length xs))
|
|
(newxs (zip xs (take (drop (concatenate ((repeat 3) xs)) k) n)))
|
|
(f (lambda (x acc) (if (= (first x) (second x)) (+ acc (first x)) acc))))
|
|
(foldr f 0 newxs)))
|
|
|
|
(define (main)
|
|
(let* ((digits-str (read-line))
|
|
(digits (map string->number (map string (string->list digits-str)))))
|
|
(print (sum-matching-offset 1 digits))
|
|
(print (sum-matching-offset (/ (length digits) 2) digits))))
|
|
|
|
(main)
|