Submission #8529518


Source Code Expand

(use srfi-1)
(use gauche.array)

(define (read-n n)
  (letrec ((read-n-impl (lambda (n rv)
    (if (= n 0)
      rv
      (read-n-impl (- n 1) (cons (read) rv))))))
   (reverse (read-n-impl n '())) ))

(define (read-n-m n m)
  (let loop ((i 0)
             (rv (list)))
    (if (= i n)
      (reverse rv)
      (loop (+ i 1) (cons 
                      (let loop2 ((j 0)
                                  (rvi (list)))
                        (if (= j m)
                          (reverse rvi)
                          (loop2 (+ j 1) (cons (read) rvi))))
                      rv)))))

(define (read-lines n)
  (letrec ((read-lines-impl (lambda (n rv)
    (if (= n 0)
      rv
      (read-lines-impl (- n 1)
                       (cons (read-line) rv))))))
   (reverse (read-lines-impl n '())) ))

(define (output n)
  (when (or (not (string? n))
            (not (string=? n "")))
    (display n) 
    (newline)))

; --------

(define-class <largenum> () (
  (n
    :accessor largenum-n
    :init-keyword :n
    :init-form (error "need n"))))

(define *largenum-base* (+ (expt 10 9) 7))

(define (largenum-normalize n)
  (modulo (+ n *largenum-base*) *largenum-base*))

(define (largenum n)
  (make <largenum> :n (largenum-normalize n)))

(define-method = ((x <largenum>) (y <largenum>))
  (= (largenum-n x) (largenum-n y)))
(define-method + ((x <largenum>) (y <largenum>))
  (largenum (largenum-normalize (+ (largenum-n x) (largenum-n y)))))
(define-method - ((x <largenum>) (y <largenum>))
  (largenum (largenum-normalize (- (largenum-n x) (largenum-n y)))))
(define-method * ((x <largenum>) (y <largenum>))
  (largenum (largenum-normalize (* (largenum-n x) (largenum-n y)))))

(define-method display ((x <largenum>))
  (display (largenum-n x)))

; --------

(set! (setter array-ref) array-set!)

(define (map-with-index f lst)
  (let loop ((lst lst)
             (rv (list))
             (i 0))
    (if (null? lst)
      (reverse rv)
      (loop (cdr lst) (cons (f (car lst) i) rv) (+ i 1)))))

; --------

(define-method describe ((a <array>))
  (display "#,(<array> ")
  (array-for-each-index a (^ (y x)
    (when (= x 0)
      (newline))
    (display (array-ref a y x))
    (display " ")))
  (display "is an instance of class <array>")
  (newline))

(define-method describe ((a <list>))
  (display a)
  (newline))

(define-method describe ((a <vector>))
  (display a)
  (newline))

(define-method describe ((a <number>))
  (display a)
  (newline))

(define-method describe ((a <boolean>))
  (display a)
  (newline))

(define-method describe ((a <string>))
  (display a)
  (newline))

(define-method describe ((a <char>))
  (display a)
  (newline))

(define (describe . o))

; --------

(define N (read))
(define M (read))
(define As (read-n M))

(define seen (make-hash-table))

(let loop ((input (reverse As)))
 (describe input)
 (when (not (null? input))
   (if (hash-table-get seen (car input) #f)
     (loop (cdr input))
     (begin
       (set! (ref seen (car input)) #t)
       (output (car input))
       (loop (cdr input))))))

(for-each (lambda (t)
            (when (not (hash-table-get seen (+ t 1) #f))
              (output (+ 1 t))))
          (iota N))

Submission Info

Submission Time
Task A - 掲示板
User ikeji
Language Scheme (Gauche 0.9.3.3)
Score 100
Code Size 3179 Byte
Status AC
Exec Time 252 ms
Memory 22140 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 3
AC × 14
AC × 30
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_00.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt
Subtask2 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_00.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask2_00.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt
Case Name Status Exec Time Memory
sample_01.txt AC 97 ms 10432 KB
sample_02.txt AC 45 ms 6140 KB
sample_03.txt AC 45 ms 6140 KB
subtask1_00.txt AC 45 ms 6140 KB
subtask1_01.txt AC 45 ms 6140 KB
subtask1_02.txt AC 45 ms 6140 KB
subtask1_03.txt AC 45 ms 6140 KB
subtask1_04.txt AC 45 ms 6140 KB
subtask1_05.txt AC 45 ms 6140 KB
subtask1_06.txt AC 45 ms 6140 KB
subtask1_07.txt AC 45 ms 6140 KB
subtask1_08.txt AC 45 ms 6140 KB
subtask1_09.txt AC 45 ms 6140 KB
subtask1_10.txt AC 45 ms 6140 KB
subtask2_00.txt AC 189 ms 16892 KB
subtask2_01.txt AC 76 ms 8956 KB
subtask2_02.txt AC 200 ms 16636 KB
subtask2_03.txt AC 72 ms 8956 KB
subtask2_04.txt AC 114 ms 11388 KB
subtask2_05.txt AC 229 ms 17532 KB
subtask2_06.txt AC 224 ms 17532 KB
subtask2_07.txt AC 124 ms 12668 KB
subtask2_08.txt AC 132 ms 12796 KB
subtask2_09.txt AC 98 ms 10108 KB
subtask2_10.txt AC 250 ms 22140 KB
subtask2_11.txt AC 247 ms 22012 KB
subtask2_12.txt AC 245 ms 22140 KB
subtask2_13.txt AC 245 ms 22140 KB
subtask2_14.txt AC 248 ms 22140 KB
subtask2_15.txt AC 252 ms 21884 KB