Advertisement
alex0sunny

queens array

Feb 20th, 2024 (edited)
635
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.63 KB | None | 0 0
  1. def dfs(cols, diags, rdiags, queens, y, n, res):
  2.     if y == n:
  3.         res.append(queens[:])
  4.         return
  5.     for x in range(n):
  6.         if cols[x] == diags[x-y] == rdiags[x+y] == False:
  7.             cols[x] = diags[x-y] = rdiags[x+y] = True
  8.             queens[y] = x + 1
  9.             dfs(cols, diags, rdiags, queens, y+1, n, res)
  10.             cols[x] = diags[x-y] = rdiags[x+y] = False
  11.  
  12.  
  13. def get_combs(n):
  14.     cols = [False] * n
  15.     diags = [False] * 2 * n
  16.     rdiags = [False] * 2 * n
  17.     queens = [0] * n
  18.     res = []
  19.     dfs(cols, diags, rdiags, queens, 0, n, res)
  20.     return res
  21.  
  22.  
  23. n = int(input())
  24. res = get_combs(n)
  25. print(len(res))
  26. for queens in res:
  27.     print(' '.join([str(x) for x in queens]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement