diff options
Diffstat (limited to '1-1.hs')
-rw-r--r-- | 1-1.hs | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -0,0 +1,18 @@ +-- 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) |