about summary refs log tree commit diff
path: root/codechef/xypizq.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'codechef/xypizq.lisp')
-rw-r--r--codechef/xypizq.lisp8
1 files changed, 8 insertions, 0 deletions
diff --git a/codechef/xypizq.lisp b/codechef/xypizq.lisp
new file mode 100644
index 0000000..3d6f14c
--- /dev/null
+++ b/codechef/xypizq.lisp
@@ -0,0 +1,8 @@
+(defun xypizq (N q x y z)
+  (cond ((= q 1) (if (= x z) (/ x (1+ (* N 2))) (- 1 (xypizq N 1 z y z))))
+        ((= q 3) (xypizq N 1 z y x))
+        (t (- 1 (/ (* y 2) (1+ (* N 2)))))))
+
+(dotimes (tests (read))
+  (let ((result (xypizq (read) (read) (read) (read) (read))))
+    (format t "~a ~a~&" (numerator result) (denominator result))))