AtCoder adt_easy_20260513_1

関連記事

1. A – “atcoder”.substr()

(defun main()
  (let* ((L (read))
         (R (read)))
    (princ (subseq "atcoder" (1- L) R))))

#-swank(main)Code language: Lisp (lisp)
1. A – “atcoder”.substr()

2. B – T-shirt

;; (get-probability 30 500 20 103) 2/47
(defun get-probability (a b c x)
  (cond
    ((<= x a) 1)
    ((<= x b) (/ c (- b a)))
    (t 0)))

(defun print-float (d)
  (format t "~f" (float d 0.0d0)))

(defun main ()
  (let* ((a (read))
         (b (read))
         (c (read))
         (x (read)))
    (print-float (get-probability a b c x))))

;; (float 2/47)0.04255319
#-swank(main)Code language: Lisp (lisp)
2. B – T-shirt

3. C – First Query Problem

(defun main ()
  (let* ((N (read))
         (An (coerce (loop repeat N collect (read))
                     'vector))
         (Q (read)))
    (read-do-queries An Q)))

(defun read-do-queries (An Q)
  (loop repeat Q
        for typ = (read)
        for k = (read)
        when (= typ 1)
          do (setf (aref An (1+ k)) (read))
        when (= typ 2)
          do (princ (aref An (1+ k)))
             (terpri)))

#-swank(main)Code language: Lisp (lisp)
3. C – First Query Problem

4. D – A Reverse


;; (subst-reverse 3 7 "abcdefgh") ;=> "abgfedch"
(defun subst-reverse (L R str)
  (let* ((left (subseq str 0 (1- L)))
         (mid (subseq str (1- L) R))
         (right (subseq str R)))
    (concatenate 'string left (reverse mid) right)))

(defun main ()
  (princ (subst-reverse (read) (read) (read-line))))

#-swank(main)Code language: Lisp (lisp)
4. D – A Reverse
4. D – A Reverse

5. E – Dice Sum

Code language: Lisp (lisp)

6.

Code language: Lisp (lisp)