Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def dfs(cols, diags, rdiags, queens, y, n, res):
- if y == n:
- res.append(queens[:])
- return
- for x in range(n):
- if cols & 1 << x == diags & 1 << (n + x - y) == rdiags & 1 << (x + y) == 0:
- queens[y] = x + 1
- dfs(cols|1<<x, diags|1<<(n+x-y), rdiags|1<<(x+y), queens, y + 1, n, res)
- def get_combs(n):
- cols = diags = rdiags = 0
- queens = [0] * n
- res = []
- dfs(cols, diags, rdiags, queens, 0, n, res)
- return res
- n = int(input())
- res = get_combs(n)
- print(len(res))
- for queens in res:
- print(' '.join([str(x) for x in queens]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement