
Olá Henrique, seu problema Polepos.hs excedeu o tempo limite de execução no SPOJ. Algumas dicas: você pode escrever: cars = map fst startGrid positions = map snd startGrid (cars, positions) = unzip take (length positions) [0..] [0 .. pred $ length positions] do scoreBoard <- parseScoreboard n let startGrid = getStartGrid scoreBoard putStrLn $ showGrid startGrid main parseScoreboard n >>= putStrLn . showGrid . getStartGrid >> main showGrid Nothing = "-1" showGrid (Just xs) = foldl1 (++) $ intersperse " " $ map show xs showGrid = maybe "-1" (foldl1 (++) . intersperse " " . map show) Talvez fosse mais legal criar um tipo de dados e definir a classe Ord para eles do que usar tupla e sortBy. Essas dicas não estão relacionadas com a demora no tempo de execução. Isso se deve, acredito eu, ao seu algoritmo. -- marcot http://marcot.iaaeee.org/