[Haskell-cafe]Prime Generator time limit exceeded
Spencer Janssen
sjanssen at cse.unl.edu
Thu Nov 2 13:04:05 EST 2006
On Nov 2, 2006, at 8:48 AM, alaiyeshi wrote:
> Also, I guess my code still waste too much time "parsing" input (I
> compiled my code with -prof flag on)...
> Maybe ByteString may save me (or a smarter brain), What is your
> opinion about doing faster IO, would you please tell me?
ByteString will likely make this problem go faster, but sadly SPOJ
doesn't have the FPS library or GHC 6.6. My submission doesn't use
any fancy IO tricks and manages to complete in 2.28 seconds.
There is one major problem with your IO code. get_contents will read
every line of input before doing any other processing or output.
This could potentially eat up a ton of memory, and thereby make your
program slow. A better approach is to interleave reading input and
printing output. Here is the input code from my submission:
\begin{code}
main = do
cases <- readLn
replicateM_ cases $ do
s <- getLine
let [m, n] = map read $ words s
{- fill in the blank! -}
\end{code}
Cheers,
Spencer Janssen
More information about the Haskell-Cafe
mailing list