diff options
| -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) |