結果

問題 No.390 最長の数列
ユーザー Common LispCommon Lisp
提出日時 2024-11-08 21:02:47
言語 Common Lisp
(sbcl 2.3.8)
結果
AC  
実行時間 165 ms / 5,000 ms
コード長 598 bytes
コンパイル時間 1,249 ms
コンパイル使用メモリ 32,128 KB
実行使用メモリ 30,592 KB
最終ジャッジ日時 2024-11-08 21:02:51
合計ジャッジ時間 2,767 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 9 ms
21,760 KB
testcase_01 AC 9 ms
21,632 KB
testcase_02 AC 9 ms
21,888 KB
testcase_03 AC 9 ms
21,760 KB
testcase_04 AC 7 ms
21,760 KB
testcase_05 AC 100 ms
23,552 KB
testcase_06 AC 165 ms
30,464 KB
testcase_07 AC 8 ms
21,888 KB
testcase_08 AC 8 ms
21,888 KB
testcase_09 AC 21 ms
29,696 KB
testcase_10 AC 132 ms
30,464 KB
testcase_11 AC 118 ms
30,464 KB
testcase_12 AC 119 ms
30,592 KB
testcase_13 AC 103 ms
30,464 KB
testcase_14 AC 105 ms
23,424 KB
testcase_15 AC 9 ms
21,888 KB
testcase_16 AC 10 ms
22,912 KB
testcase_17 AC 22 ms
29,568 KB
testcase_18 AC 26 ms
29,824 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
; compiling file "/home/judge/data/code/Main.lisp" (written 08 NOV 2024 09:02:47 PM):

; wrote /home/judge/data/code/Main.fasl
; compilation finished in 0:00:00.051

ソースコード

diff #

(defun main (&rest argv)
  (declare (ignorable argv))
  (let* ((n (read))
         (a (make-array n))
         (res 0))
    (dotimes (i n) (setf (aref a i) (read)))
    (sort a #'<)
    (let* ((b (aref a (1- n)))
           (dp (make-array (1+ b) :initial-element 0)))
      (dotimes (i n)
        (let ((c (aref a i)))
          (setf (aref dp c) (max 1 (aref dp c)))
          (loop for j from (* 2 c) to b by c do
                (setf (aref dp j) (max (aref dp j) (1+ (aref dp c)))))))
      (dotimes (i n)
        (setq res (max res (aref dp (aref a i))))))
    (format t "~d~%" res)))

(main)
0