Submission #5436331


Source Code Expand

Copy
;; -*- coding: utf-8 -*-
(eval-when (:compile-toplevel :load-toplevel :execute)
  (defparameter OPT
    #+swank '(optimize (speed 3) (safety 2))
    #-swank '(optimize (speed 3) (safety 0) (debug 0)))
  #+swank (progn (ql:quickload '(:cl-debug-print :fiveam))
                 (shadow :run)
                 (use-package :fiveam)))
#+swank (cl-syntax:use-syntax cl-debug-print:debug-print-syntax)

;; BEGIN_INSERTED_CONTENTS
(declaim (ftype (function * (values fixnum &optional)) read-fixnum))
(defun read-fixnum (&optional (in *standard-input*))
  (declare #.OPT)
  (macrolet ((%read-byte ()
               `(the (unsigned-byte 8)
                     #+swank (char-code (read-char in nil #\Nul))
                     #-swank (sb-impl::ansi-stream-read-byte in nil #.(char-code #\Nul) nil))))
    (let* ((minus nil)
           (result (loop (let ((byte (%read-byte)))
                           (cond ((<= 48 byte 57)
                                  (return (- byte 48)))
                                 ((zerop byte) ; #\Nul
                                  ;; (return-from read-fixnum 0)
                                  (error "Read EOF or #\Nul."))
                                 ((= byte #.(char-code #\-))
                                  (setf minus t)))))))
      (declare ((integer 0 #.most-positive-fixnum) result))
      (loop
        (let* ((byte (%read-byte)))
          (if (<= 48 byte 57)
              (setq result (+ (- byte 48) (* 10 (the (integer 0 #.(floor most-positive-fixnum 10)) result))))
              (return (if minus (- result) result))))))))

(defmacro dbg (&rest forms)
  #+swank
  (if (= (length forms) 1)
      `(format *error-output* "~A => ~A~%" ',(car forms) ,(car forms))
      `(format *error-output* "~A => ~A~%" ',forms `(,,@forms)))
  #-swank (declare (ignore forms)))

(defmacro define-int-types (&rest bits)
  `(progn
     ,@(mapcar (lambda (b) `(deftype ,(intern (format nil "UINT~A" b)) () '(unsigned-byte ,b))) bits)
     ,@(mapcar (lambda (b) `(deftype ,(intern (format nil "INT~A" b)) () '(signed-byte ,b))) bits)))
(define-int-types 2 4 7 8 15 16 31 32 62 63 64)

(declaim (inline println))
(defun println (obj &optional (stream *standard-output*))
  (let ((*read-default-float-format* 'double-float))
    (prog1 (princ obj stream) (terpri stream))))

(defconstant +mod+ 1000000007)

;; Body

(defun main ()
  (declare #.OPT (inline sort))
  (let* ((n (read))
         (c (read))
         (ls (make-array n :element-type 'uint32)))
    (declare (uint32 n c))
    (dotimes (i n) (setf (aref ls i) (read-fixnum)))
    (setf ls (sort ls #'>))
    (let ((index 0)
          (end (- n 1))
          (res 0))
      (declare (uint32 index end res))
      (loop (when (> index end)
              (println res)
              (return))
            (when (and (< index end)
                       (< (+ (aref ls index) (aref ls end)) c))
              (decf end))
            (incf res)
            (incf index)))))

#-swank(main)

Submission Info

Submission Time
Task C - 収納
User sansaqua
Language Common Lisp (SBCL 1.1.14)
Score 300
Code Size 3056 Byte
Status
Exec Time 291 ms
Memory 31076 KB

Judge Result

Set Name Score / Max Score Test Cases
Sample 0 / 0 sample_01.txt, sample_02.txt, sample_03.txt
All 300 / 300 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
01.txt 291 ms 31076 KB
02.txt 122 ms 19044 KB
03.txt 112 ms 19044 KB
04.txt 120 ms 19044 KB
05.txt 107 ms 19044 KB
06.txt 95 ms 19040 KB
07.txt 100 ms 19044 KB
08.txt 114 ms 19040 KB
09.txt 116 ms 19048 KB
10.txt 94 ms 19048 KB
11.txt 121 ms 19044 KB
12.txt 121 ms 19044 KB
13.txt 112 ms 19048 KB
sample_01.txt 89 ms 16996 KB
sample_02.txt 89 ms 16992 KB
sample_03.txt 90 ms 16992 KB