View difference between Paste ID: jgFSyXCw and 5LjjkSEq
SHOW: | | - or go back to the newest paste.
1
from constraint import *
2
3
if __name__ == '__main__':
4
    problem = Problem(BacktrackingSolver())
5
6
    num_queens = int(input())
7
8
    queens = range(1, num_queens + 1)
9
    domain = [(i, j) for i in range(num_queens) for j in range(num_queens)]
10
11
    problem.addVariables(queens, domain)
12
    
13
    # ----------------Constraints begin here----------------
14
    for queen1 in queens:
15
        for queen2 in queens:
16
            if queen1 < queen2:
17
                # Diagonal constraints
18
                problem.addConstraint(lambda q1, q2: (abs(q1[0] - q2[0]) != abs(q1[1] - q2[1])), (queen1, queen2))
19
                # Row and column constraint
20
                problem.addConstraint(lambda q1, q2: q1[0] != q2[0] and q1[1] != q2[1], (queen1, queen2))
21
    # ------------------------------------------------------
22
    # If there are less than 7 queens, print only the number of solutions
23
    if num_queens < 7:
24
        print(len(problem.getSolutions()))
25
    else:
26
        print(problem.getSolution())
27