import System.IO  
import Control.Monad

main = do  
        let list = []
        inputHandle <- openFile "../data/2015/1/input.txt" ReadMode
        input <- hGetContents inputHandle
        putStr "Part 1: "
        putStrLn $ finalFloor input 0

        putStr "Part 2: "
        putStrLn $ basementSteps input 0 0
        hClose inputHandle   

finalFloor :: String -> Int -> String

finalFloor ('(' : rest) floor = finalFloor rest (floor + 1)
finalFloor (')' : rest) floor = finalFloor rest (floor - 1)
finalFloor _ floor = show floor

basementSteps :: String -> Int -> Int -> String
basementSteps _ (-1) steps = show steps
basementSteps ('(' : rest) floor steps = basementSteps rest (floor + 1) (steps + 1)
basementSteps (')' : rest) floor steps = basementSteps rest (floor - 1) (steps + 1)
basementSteps _ _ steps = show steps