Advertisement
Guest User

Untitled

a guest
Mar 11th, 2016
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.55 KB | None | 0 0
  1. import Data.Array
  2.  
  3. solve :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Integer
  4. solve n m x y x0 y0 k = table ! (x, y, k) where
  5. bnds = ((0, 0, 0), (n, m, k))
  6. table = listArray bnds . map solve' $ range bnds
  7. safeTable x y k
  8. | x >= 0 && y >= 0 && x < n && y < m = table ! (x, y, k)
  9. | otherwise = 0
  10. solve' (x, y, k)
  11. | k == 0 = if (x == x0 && y == y0) then 1 else 0
  12. | otherwise = (safeTable x (y+1) (k-1)) + (safeTable x (y-1) (k-1)) + (safeTable (x-1) y (k-1)) + (safeTable (x+1) y (k-1))
  13. main = print (solve 100 100 50 50 60 60 200)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement