Cod sursa(job #2510796)

Utilizator buhaidarius@gmail.comBuhai Darius [email protected] Data 17 decembrie 2019 14:53:04
Problema Problema Damelor Scor 10
Compilator py Status done
Runda Arhiva educationala Marime 1 kb
with open("damesah.in", "r") as r:
    n = int(r.read())
n = 4
pos = []
fpos = []
tcases = 0


def check(i, j):
    for p in pos:
        if i == p[0] or j == p[1]:
            return False
        if abs(i - p[0]) == abs(j - p[1]):
            return False
    return True


def check2():
    for p in fpos:
        dif = False
        for c in p:
            if c not in pos:
                dif = True
        if not dif:
            return False
    return True


def back(k = 0):
    global n
    global tcases
    global checked
    if k == n:
        if(check2()):
            fpos.append(pos[:])
            tcases += 1
        return
    for i in range(0, n):
        for j in range(0, n):
            if [i, j] not in pos and check(i, j):
                pos.append([i, j])
                back(k+1)
                pos.pop()


back()

with open("damesah.out", "w") as w:
    tw = fpos[0][:]
    tw.sort()
    ttw = ""
    for p in tw:
        ttw += str(p[1] + 1) + " "
    ttw += '\n'+str(tcases)
    w.write(ttw)