def check_constraints(q: list[int]) -> bool:
'''
Vérifie que toutes les contraintes du problème soient satisfaites dans
la solution ``q`` représentant la ligne sur laquelle est placée chaque
dames ``q[i]``.
>>> check_constraints([0])
True
>>> check_constraints([1, 3, 0, 2])
True
>>> check_constraints([1, 3, 5, 0, 2, 4])
True
>>> check_constraints([0, 1, 2, 3])
False
>>> check_constraints([3, 2, 1, 0])
False
>>> check_constraints([1, 3, 0, 0])
False
>>> check_constraints([1, 4, 5, 2, 0, 4])
False
'''
n = len(q)
for i in range(n):
for j in range(i + 1, n):
if q[i] == q[j]: return False
if q[i] - q[j] == i - j: return False
if q[j] - q[i] == i - j: return False
return True
if __name__ == '__main__':
import doctest
doctest.testmod()