SPOJ has limitation of 48Mb for running sbcl.
How to check: Go to SPOJ custom test: http://www.spoj.com/problems/BACTERIA/
and try this one:
(defun test()
(let ((arr (make-array (expt 10 7) :initial-element 0)))
(setf (aref arr (1- (length arr))) 42)
;; crash
))
(print (sb-ext:dynamic-space-size))
;; (test)
When running with ;; (test) commented it print dynamic-space-size which is 48 Mb. If you uncomment (test) it will NZEC.
You should be able to allocate 10^7 of long long, bool for solving, for ex,
http://www.spoj.com/problems/APS, for sieve table, this problem can not be solved otherwise with this timelimit.
I would understand the limitation for compilation phase, if one wants to limit the power of CL during compile, but for runtime phase it's just ridiculous. You don't artificially limit memory allocation for C++, right?