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 0000000..d349ea6 Binary files /dev/null and b/benchmark.png differ 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 +