-- Gnome sort for christmas ;3 gnomeSort :: Ord a => [a] -> [a] gnomeSort = gs [] gs :: Ord a => [a] -> [a] -> [a] gs [] (x:front) = gs [x] front gs (p:back) (q:front) | p <= q = gs (q:p:back) front gs (p:back) (q:front) | p > q = gs back (q:p:front) gs xs [] = reverse xs main :: IO () main = do ls <- getContents let ns = map (map read . words) . lines $ ls let xs = map head ns let ys = map last ns let ms = zipWith ((abs .) . (-)) (gnomeSort xs) (gnomeSort ys) print (sum ms)