about summary refs log tree commit diff
path: root/codechef/spread2.lisp
diff options
context:
space:
mode:
authorNguyễn Gia Phong <vn.mcsinyx@gmail.com>2018-10-20 11:27:47 +0700
committerNguyễn Gia Phong <vn.mcsinyx@gmail.com>2018-10-20 11:27:47 +0700
commit4c5ed94087a691ce47882786aea64f7b5bf3c130 (patch)
tree6ebb9374e9c9e1d867659a1de166fbe8f6481b19 /codechef/spread2.lisp
parent662168dbd56cbeba35bea782d580b0f7cc9a3ac2 (diff)
downloadcp-4c5ed94087a691ce47882786aea64f7b5bf3c130.tar.gz
Bon appétit
Diffstat (limited to 'codechef/spread2.lisp')
-rw-r--r--codechef/spread2.lisp14
1 files changed, 14 insertions, 0 deletions
diff --git a/codechef/spread2.lisp b/codechef/spread2.lisp
new file mode 100644
index 0000000..db26024
--- /dev/null
+++ b/codechef/spread2.lisp
@@ -0,0 +1,14 @@
+(defun next (m result)
+  (if (> m 0)
+      (next (1- m) (+ (read) result))
+      result))
+
+(defun spread2 (n sum &optional (result 1))
+  (if (< sum n)
+      (spread2 (- n sum) (next sum sum) (1+ result))
+      (dotimes (i n result) (read))))
+
+(let ((tests (read)))
+  (dotimes (i tests)
+    (format t "~a~&" (spread2 (1- (read)) (read)))))
+