Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Control.Monad
- solve :: [Integer] -> Integer
- solve [d, l, h] = search 0 (d * d + l * l + 2)
- where search left right = if (left < right - 1) then
- (if (4 * d * h * mid * (mid + 1) <= d * d + l * l) then (search mid right) else (search left mid)) else right
- where mid = quot (left + right) 2
- main = (getLine >>= (flip (replicateM . read) getLine)) >>= (mapM (return . solve . (map read) . words)) >>= (mapM_ print)
Advertisement
Add Comment
Please, Sign In to add comment