結果
| 問題 | 
                            No.24 数当てゲーム
                             | 
                    
| コンテスト | |
| ユーザー | 
                             _Clay____
                         | 
                    
| 提出日時 | 2018-09-30 15:43:56 | 
| 言語 | Scheme  (Gauche-0.9.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 27 ms / 5,000 ms | 
| コード長 | 1,570 bytes | 
| コンパイル時間 | 52 ms | 
| コンパイル使用メモリ | 6,944 KB | 
| 実行使用メモリ | 16,128 KB | 
| 最終ジャッジ日時 | 2024-10-12 09:09:35 | 
| 合計ジャッジ時間 | 833 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 10 | 
ソースコード
(letrec* ((n (string->number (read-line)))
          (v (make-vector 10 0))
          (get-data (lambda (n a)
                            (if (zero? n) (reverse a)
                                          (get-data (- n 1)
                                                    (cons (string-split (read-line) " ") a)))))
          (a (get-data n '()))
          (check (lambda (a)
                         (unless (null? a)
                                 (let1 r (map string->number (reverse (cdr (reverse (car a)))))
                                    (begin
                                      (if (equal? (car (reverse (car a))) "NO")
                                          (for-each (lambda (x) 
                                                            (vector-set! v x -1))
                                                    r)
                                          (for-each (lambda (x) 
                                                            (vector-set! v x
                                                              (+ (vector-ref v x) 1)))
                                                    r))
                                      (check (cdr a)))))))
          (get-result (lambda (n mv mi)
                              (let* ((v (vector-ref v n))
                                     (b  (< mv v)))
                                    (if (eq? n 9) (if b n mi)
                                                  (get-result (+ n 1) (if b v mv) (if b n mi)))))))
         (check a)
         (print (get-result 0 (vector-ref v 0) 0)))
            
            
            
        
            
_Clay____