; school awards

(define (sum xs) (apply + xs))

(define (award days)
  (if (= days 1) 3
    (let loop ((xs (list 4 2 1)) (days days))
      (if (< 2 days)
          (loop (cons (+ (car xs) (cadr xs) (caddr xs)) xs) (- days 1))
          (+ (car xs) (sum (map * (cdr xs) (reverse (cdr xs)))))))))

(do ((n 1 (+ n 1))) ((< 20 n))
  (display n) (display #\tab)
  (display (award n)) (newline))