; career cup
(define (med1 lt? xs ys)
(let* ((zs (merge xs ys lt?)) (n (length zs)))
(list-ref zs (quotient n 2))))
(display (med1 < '(1 3 5 7 9) '(2 4 6 8))) (newline)
(define (med2 lt? xs ys)
(let ((n (quotient (+ (length xs) (length ys) 1) 2)))
(let loop ((n (- n 1)) (xs xs) (ys ys))
(cond ((zero? n) (car xs))
((lt? (car xs) (car ys))
(loop (- n 1) (cdr xs) ys))
((lt? (car ys) (car xs))
(loop (- n 1) xs (cdr ys)))
(else (loop (- n 1) (cdr xs) ys))))))
(display (med2 < '(1 3 5 7 9) '(2 4 6 8))) (newline)
OyBjYXJlZXIgY3VwCgooZGVmaW5lIChtZWQxIGx0PyB4cyB5cykKICAobGV0KiAoKHpzIChtZXJnZSB4cyB5cyBsdD8pKSAobiAobGVuZ3RoIHpzKSkpCiAgICAobGlzdC1yZWYgenMgKHF1b3RpZW50IG4gMikpKSkKCihkaXNwbGF5IChtZWQxIDwgJygxIDMgNSA3IDkpICcoMiA0IDYgOCkpKSAobmV3bGluZSkKCihkZWZpbmUgKG1lZDIgbHQ/IHhzIHlzKQogIChsZXQgKChuIChxdW90aWVudCAoKyAobGVuZ3RoIHhzKSAobGVuZ3RoIHlzKSAxKSAyKSkpCiAgICAobGV0IGxvb3AgKChuICgtIG4gMSkpICh4cyB4cykgKHlzIHlzKSkKICAgICAgKGNvbmQgKCh6ZXJvPyBuKSAoY2FyIHhzKSkKICAgICAgICAgICAgKChsdD8gKGNhciB4cykgKGNhciB5cykpCiAgICAgICAgICAgICAgKGxvb3AgKC0gbiAxKSAoY2RyIHhzKSB5cykpCiAgICAgICAgICAgICgobHQ/IChjYXIgeXMpIChjYXIgeHMpKQogICAgICAgICAgICAgIChsb29wICgtIG4gMSkgeHMgKGNkciB5cykpKQogICAgICAgICAgICAoZWxzZSAobG9vcCAoLSBuIDEpIChjZHIgeHMpIHlzKSkpKSkpCgooZGlzcGxheSAobWVkMiA8ICcoMSAzIDUgNyA5KSAnKDIgNCA2IDgpKSkgKG5ld2xpbmUp