Advertisement
Guest User

Untitled

a guest
May 28th, 2015
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. import Control.Monad
  2. import Text.Printf
  3. import Control.Applicative
  4.  
  5. main :: IO()
  6. main = do
  7. testCase <- readLn
  8. forM_ [1..testCase] $ \i -> do
  9. [x, r, c] <- map read . words <$> getLine
  10. let ans = slv x r c
  11. printf "Case #%d: %s\n" (i :: Int) ans
  12.  
  13. slv :: Int -> Int -> Int -> String
  14. slv x r c | (r*c) `mod` x == 0 && x < 7 = detailCheck x r c
  15. | otherwise = "RICHARD"
  16.  
  17. detailCheck :: Int -> Int -> Int -> String
  18. detailCheck x r c | x == 1 = "GABRIEL"
  19. | x == 2 = "GABRIEL"
  20. | x == 3 && r >= 2 && c >= 2 = "GABRIEL"
  21. | x == 4 && r >= 3 && c >= 3 = "GABRIEL"
  22. | x == 5 && (r >= 4 && c >= 4 || min r c == 3 && max r c >= 10)= "GABRIEL"
  23. | x == 6 && r >= 4 && c >= 4 = "GABRIEL"
  24. | otherwise = "RICHARD"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement