(defvar N) (defvar a) (defvar b) (setq N (parse-integer (read-line))) (setq a (read-from-string (concatenate 'string "(" (read-line) ")"))) (setq b (read-from-string (concatenate 'string "(" (read-line) ")"))) ;(print N) ;(print a) ;(print b) (defvar sum) (defvar nokori) (defvar sum (make-array 100 :initial-element 0)) (defvar nokori 0) (loop for i from 0 to (- N 1) do (if (= (nth i b) 0) (setq nokori (+ nokori (nth i a))) (setf (aref sum (nth i b)) (+ (aref sum (nth i b)) (nth i a)))) (values) ) ;(print sum) ;(print nokori) ;(format t "~a~%" (if (>= nokori (max sum)) "YES" "NO")) (loop for i from 0 to (- N 1) do (if (< nokori (aref sum i)) (progn (format t "NO~%") (quit)))) (format t "YES~%")