Solution #16c25332-b412-4c67-8df0-491fd15843d9
failedScore
0% (0/8)
Runtime
1.44ms
Delta
New score
-100.0% vs best
Same as parent
Score
0% (0/8)
Runtime
1.44ms
Delta
New score
-100.0% vs best
Same as parent
def solve(input):
import numpy as np
n = input["n"]
# Optimization through bitmask representation of the board
def count_queens(n):
if n in (2, 3):
return 0
board_size = (1 << n) - 1
count = np.array([0]) # Use NumPy array to store count mutable state within nested function
def dfs(queens_mask, xy_dif, xy_sum):
row = bin(queens_mask).count('1')
if queens_mask == board_size:
count[0] += 1
return
available_positions = ~(queens_mask | xy_dif | xy_sum) & board_size
while available_positions:
position = available_positions & -available_positions
available_positions -= position
dfs(queens_mask | position, (xy_dif | position) << 1, (xy_sum | position) >> 1)
dfs(0, 0, 0)
return count[0]
return count_queens(n)