結果

問題 No.275 中央値を求めよ
ユーザー yusaka
提出日時 2015-09-22 05:35:41
言語 Scheme
(Gauche-0.9.15)
結果
RE  
実行時間 -
コード長 794 bytes
コンパイル時間 34 ms
コンパイル使用メモリ 5,248 KB
実行使用メモリ 16,640 KB
最終ジャッジ日時 2024-07-19 08:35:50
合計ジャッジ時間 2,246 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample RE * 3
other RE * 38
権限があれば一括ダウンロードができます

ソースコード

diff #

#!/usr/bin/env gosh
(define (read-input)
  (let ((n (read (open-input-string (read-line))))
        (numbers (read (open-input-string (string-append "(" (read-line) ")")))))
    (cons n numbers)))

(define	(sort lst)
  (define (filter p? lst acc)
    (if (null? lst)
        acc
       	(if (p? (car lst))
            (filter p? (cdr lst) (cons (car lst) acc))
            (filter p? (cdr lst) acc))))
  (append (sort (filter (lambda (x) (< (car lst) x)) '()))
          (car lst)
	  (sort	(filter (lambda (x) (> (car lst) x)) '()))))

(define	(get-median lst)
  (let ((n (car lst))
        (ns (sort (cdr lst))))
    (if (even? n)
       	(* 0.5
	   (+ (list-ref ns (/ n 2))
              (list-ref ns (- (/ n 2) 1))))
	(list-ref ns (div n 2)))))

(display (get-median (read-input)))
(newline)
0