Solution #16c25332-b412-4c67-8df0-491fd15843d9

failed

Score

0% (0/8)

Runtime

1.44ms

Delta

New score

-100.0% vs best

Same as parent

Solution Lineage

Current0%Same as parent
3f4145940%Regression from parent
a6b364de100%Same as parent
91054004100%Same as parent
4817b1aa100%Same as parent
51f70cba100%Same as parent
184c2fb7100%First in chain

Code

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)