Pagini recente » Cod sursa (job #2242519) | Cod sursa (job #477685) | Cod sursa (job #620571) | Cod sursa (job #1272270) | Cod sursa (job #2510808)
f=open("damesah.in","r")
n=int(f.read())
f.close()
L=[ [0 for i in range(0,n)] for j in range(0,n)]
ans=0
def verificare_ataca(sol):
ok=1
for i in range(0,len(sol)):
for j in range(0,i):
if sol[i][0]==sol[j][0] or sol[i][1]==sol[j][1] or abs(sol[i][0]-sol[j][0])==abs(sol[i][1]-sol[j][1]):
ok=0
break
return (ok==1)
def verificare_basic(L):
sol=[]
for i in range(0,n):
for j in range(0,n):
if L[i][j]==1:
sol.append((i+1,j+1))
if len(sol)==n and verificare_ataca(sol)==1:
ans=[x[1] for x in sol]
return ans
return 0
def back(x,y,k):
global ans
if y==n:
y=0
x+=1
if x==n and y==0:
if k==n:
if verificare_basic(L)!=0:
rez=verificare_basic(L)
ans+=1
if ans==1:
for t in rez:
print(t,end=' ')
print()
#verific solutia
else:
L[x][y]=1
k+=1
back(x,y+1,k)
k-=1
L[x][y]=0
back(x,y+1,k)
back(0,0,0)
print(ans,end='')