; homework

(define range
  (case-lambda
    ((stop) (range 0 stop (if (negative? stop) -1 1)))
    ((start stop) (range start stop (if (< start stop) 1 -1)))
    ((start stop step)
      (let ((le? (if (negative? step) >= <=)))
        (let loop ((x start) (xs (list)))
          (if (le? stop x) (reverse xs)
            (loop (+ x step) (cons x xs))))))
    (else (error 'range "too many arguments"))))

(define (rept n x)
  (map (lambda (_) x) (range n)))
 
 (define (f n c)
  (let ((q (quotient c n))
        (r (remainder c n)))
    (append (rept r (+ q 1))
            (rept (- n r) q))))

(display (f 7 26))