Submission #4525025


Source Code Expand

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

(defconstant +mod+ 1000000007)

;; Hauptteil

(defun calc0 (a)
  (declare #.OPT
           (uint62 a))
  (let ((res 0))
    (declare (uint62 res))
    (dotimes (k (integer-length a) res)
      (if (zerop k)
          (let ((rem (mod a 4)))
            (if (or (= rem 0) (= rem 3))
                (setf (ldb (byte 1 0) res) 0)
                (setf (ldb (byte 1 0) res) 1)))
          (let ((rem (mod a (expt 2 (+ k 1)))))
            (cond ((< rem (expt 2 k))
                   (setf (ldb (byte 1 k) res) 0))
                  ((evenp rem)
                   (setf (ldb (byte 1 k) res) 1))
                  (t
                   (setf (ldb (byte 1 k) res) 0))))))))

(defun main ()
  (let* ((a (read))
         (b (read)))
    (declare (uint62 a b))
    (println
     (if (zerop a)
         (calc0 b)
         (logxor (calc0 b) (calc0 (- a 1)))))))

#-swank(main)

Submission Info

Submission Time
Task D - XOR World
User sansaqua
Language Common Lisp (SBCL 1.1.14)
Score 400
Code Size 1818 Byte
Status AC
Exec Time 162 ms
Memory 19552 KiB

Judge Result

Set Name All Sample
Score / Max Score 400 / 400 0 / 0
Status
AC × 26
AC × 3
Set Name Test Cases
All sample_01, sample_02, sample_03, testcase_01, testcase_02, testcase_03, testcase_04, testcase_05, testcase_06, testcase_07, testcase_08, testcase_09, testcase_10, testcase_11, testcase_12, testcase_13, testcase_14, testcase_15, testcase_16, testcase_17, testcase_18, testcase_19, testcase_20, testcase_21, testcase_22, testcase_23
Sample sample_01, sample_02, sample_03
Case Name Status Exec Time Memory
sample_01 AC 162 ms 19552 KiB
sample_02 AC 33 ms 8544 KiB
sample_03 AC 33 ms 8544 KiB
testcase_01 AC 34 ms 8544 KiB
testcase_02 AC 33 ms 8548 KiB
testcase_03 AC 33 ms 8552 KiB
testcase_04 AC 33 ms 8548 KiB
testcase_05 AC 33 ms 8552 KiB
testcase_06 AC 33 ms 8552 KiB
testcase_07 AC 33 ms 8548 KiB
testcase_08 AC 33 ms 8548 KiB
testcase_09 AC 33 ms 8548 KiB
testcase_10 AC 33 ms 8548 KiB
testcase_11 AC 33 ms 8544 KiB
testcase_12 AC 34 ms 8548 KiB
testcase_13 AC 34 ms 8544 KiB
testcase_14 AC 33 ms 8552 KiB
testcase_15 AC 33 ms 8552 KiB
testcase_16 AC 33 ms 8548 KiB
testcase_17 AC 33 ms 8552 KiB
testcase_18 AC 33 ms 8544 KiB
testcase_19 AC 33 ms 8544 KiB
testcase_20 AC 33 ms 8548 KiB
testcase_21 AC 33 ms 8548 KiB
testcase_22 AC 33 ms 8548 KiB
testcase_23 AC 33 ms 8544 KiB