Pagini recente » Cod sursa (job #944274) | Cod sursa (job #1000109) | Cod sursa (job #2150063) | Cod sursa (job #2332417) | Cod sursa (job #2449636)
#!/usr/bin/env python3
import sys
sys.stdout = open('damesah.out', 'w')
with open('damesah.in', 'r') as f:
N = int(f.readline())
v, d1, d2, sol, num, first = [False] * N, [False] * N * 2, [False] * N * 2, [0] * N, 0, None
def solve(i, c):
global first
if i == N:
if not first: first = ' '.join(str(x + 1) for x in sol)
return c == 0
sol[i] = c
if v[c]: return 0
if d1[i-c]: return 0
if d2[2*N-i-c-1]: return 0
v[c] = d1[i-c] = d2[2*N-i-c-1] = True
cnt = sum(solve(i + 1, c) for c in range(N))
v[c] = d1[i-c] = d2[2*N-i-c-1] = False
return cnt
cnt = sum(solve(0, c) for c in range(N))
print(first)
print(cnt)