Submission #4017154


Source Code Expand

(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
(defmacro split-ints-and-bind (vars string &body body)
  (let ((pos1 (gensym "POS"))
	(pos2 (gensym "POS"))
	(str (gensym "STR")))
    (labels ((expand (vars &optional (init-pos1 t))
	       (if (null vars)
		   body
		   `((let* ((,pos1 ,(if init-pos1 0 `(1+ ,pos2)))
			    (,pos2 (position #\space ,str :start ,pos1 :test #'char=))
			    (,(car vars) (parse-integer ,str :start ,pos1 :end ,pos2)))
		       ,@(expand (cdr vars) nil))))))
      `(let ((,str ,string))
         (declare (string ,str))
	 ,@(expand vars)))))

(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)

(defmacro println (obj &optional (stream '*standard-output*))
  `(let ((*read-default-float-format* 'double-float))
     (prog1 (princ ,obj ,stream) (terpri ,stream))))

;; Hauptteil

(defun main ()
  (declare #.OPT)
  (let* ((n (read))
         (m (read))
         (edges (make-array m :element-type 'list)) ; (from to -cost)
         (dp (make-array n :element-type 'fixnum :initial-element most-positive-fixnum)))
    (setf (aref dp 0) 0)
    (dotimes (i m)
      (split-ints-and-bind (a b c) (read-line)
        (declare (uint32 a b) (fixnum c))
        (setf (aref edges i) (list (- a 1) (- b 1) (- c)))))
    (labels ((forward ()
               (loop for (src dest neg-cost) of-type (uint32 uint32 fixnum) across edges
                     when (and (/= most-positive-fixnum (aref dp src))
                               (< (+ (aref dp src) neg-cost)
                                  (aref dp dest)))
                     do (setf (aref dp dest) (+ (aref dp src) neg-cost)))))
      (if (= (loop repeat (- n 1) do (forward)
                   finally (return (aref dp (- n 1))))
             (loop repeat n do (forward)
                   finally (return (aref dp (- n 1)))))
          (println (- (aref dp (- n 1))))
          (println "inf")))))

#-swank(main)

Submission Info

Submission Time
Task D - Score Attack
User sansaqua
Language Common Lisp (SBCL 1.1.14)
Score 400
Code Size 2561 Byte
Status AC
Exec Time 131 ms
Memory 20968 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 30
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_2.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt
Case Name Status Exec Time Memory
sample_01.txt AC 99 ms 18916 KB
sample_02.txt AC 99 ms 18916 KB
sample_03.txt AC 99 ms 18916 KB
subtask_1_1.txt AC 101 ms 18916 KB
subtask_1_10.txt AC 99 ms 18920 KB
subtask_1_11.txt AC 101 ms 18912 KB
subtask_1_12.txt AC 117 ms 20964 KB
subtask_1_13.txt AC 100 ms 18916 KB
subtask_1_14.txt AC 114 ms 18916 KB
subtask_1_15.txt AC 131 ms 20964 KB
subtask_1_16.txt AC 99 ms 18912 KB
subtask_1_17.txt AC 99 ms 18916 KB
subtask_1_18.txt AC 109 ms 18916 KB
subtask_1_19.txt AC 118 ms 20960 KB
subtask_1_2.txt AC 112 ms 18916 KB
subtask_1_20.txt AC 99 ms 18916 KB
subtask_1_21.txt AC 108 ms 18920 KB
subtask_1_22.txt AC 126 ms 20968 KB
subtask_1_23.txt AC 99 ms 18916 KB
subtask_1_24.txt AC 114 ms 20964 KB
subtask_1_25.txt AC 103 ms 18916 KB
subtask_1_26.txt AC 111 ms 18920 KB
subtask_1_27.txt AC 115 ms 18916 KB
subtask_1_3.txt AC 106 ms 18920 KB
subtask_1_4.txt AC 112 ms 18920 KB
subtask_1_5.txt AC 103 ms 18912 KB
subtask_1_6.txt AC 114 ms 18912 KB
subtask_1_7.txt AC 110 ms 18916 KB
subtask_1_8.txt AC 111 ms 18916 KB
subtask_1_9.txt AC 99 ms 18916 KB