Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import groovy.transform.Memoized
- n = 100
- m = 100
- x1 = 60
- y1 = 60
- @Memoized
- BigInteger solve(int x, int y, int k) {
- if (k == 0) {
- return ((x == x1) && (y == y1)) ? 1g : 0g
- }
- else {
- def up = (y+1 < m) ? solve(x, y+1, k-1) : 0g
- def down = (y-1 >= 0) ? solve(x, y-1, k-1) : 0g
- def right = (x+1 < n) ? solve(x+1, y, k-1) : 0g
- def left = (x-1 >= 0) ? solve(x-1, y, k-1) : 0g
- return up + down + left + right
- }
- }
- println solve(50, 50, 200)
Advertisement
Add Comment
Please, Sign In to add comment