[Haskell-beginners] Re: Programação Funcional - TP1

Marco Túlio Gontijo e Silva marcot at holoscopio.com
Tue May 5 14:06:41 EDT 2009


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/




More information about the Beginners mailing list