From 250b89138331e2a51e35a24339acf9e60513789d Mon Sep 17 00:00:00 2001 From: Thorn Avery Date: Fri, 12 Mar 2021 15:05:46 +1300 Subject: [PATCH] added naive for comparison --- .gitignore | 1 + benchmark.png | Bin 0 -> 4946 bytes naiveEgg.hs | 17 +++++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 benchmark.png create mode 100644 naiveEgg.hs diff --git a/.gitignore b/.gitignore index 093218d..e23ba47 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.o *.swp eggdrop +neggdrop diff --git a/benchmark.png b/benchmark.png new file mode 100644 index 0000000000000000000000000000000000000000..d349ea68ca895e935603519d964db26f1eb86115 GIT binary patch literal 4946 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 bCk*}=u5l*ivU=c2M*RN+vc+{y literal 0 HcmV?d00001 diff --git a/naiveEgg.hs b/naiveEgg.hs new file mode 100644 index 0000000..fd0d064 --- /dev/null +++ b/naiveEgg.hs @@ -0,0 +1,17 @@ +eggDrop :: Integer -> Integer -> Integer +eggDrop n k + | k == 1 || k == 0 || n == 1 = k + | otherwise = 1 + (minimum $ map (\i -> f i) [1..k]) + where + f i = max (eggDrop (n-1) (i-1)) (eggDrop n (k-i)) + +----------------- +-- gross io bs -- +----------------- + +main :: IO () +main = do + l <- getLine + let (n:k:_) = map read $ words l :: [Integer] + putStrLn $ show $ eggDrop n k +