B ((@s0dZdZGdddZddZedkr,edS)z N queens problem. The (well-known) problem is due to Niklaus Wirth. This solution is inspired by Dijkstra (Structured Programming). It is a classic recursive backtracking approach. c@sNeZdZefddZddZdddZdd Zd d Zd d Z dZ ddZ dS)QueenscCs||_|dS)N)nreset)selfrr6/opt/alt/python37/lib64/python3.7/Tools/demo/queens.py__init__szQueens.__init__cCsP|j}dg||_dg||_dgd|d|_dgd|d|_d|_dS)N)ryrowupdownnfound)rrrrrrs   z Queens.resetr cCsbx\t|jD]N}|||r ||||d|jkr@|n||d|||q WdS)Nr )rangersafeplacedisplaysolveremove)rxr rrrrs   z Queens.solvecCs,|j| o*|j|| o*|j|| S)N)r rr)rrr rrrr&sz Queens.safecCs4||j|<d|j|<d|j||<d|j||<dS)Nr )r r rr)rrr rrrr)s  z Queens.placecCs4d|j|<d|j|<d|j||<d|j||<dS)Nr )r r rr)rrr rrrr/s  z Queens.removecCs|jd|_|jrdStdd|jdxjt|jdddD]T}tdddx:t|jD],}|j||kr|td ddq\td ddq\Wtdq@Wtdd|jddS) Nr z+-z--+| )endQ.)rsilentprintrrr )rr rrrrr7s   zQueens.displayN)r ) __name__ __module__ __qualname__Nrrrrrrrrrrrrrs  rcCstddl}d}t}|jdddgkr0d}|jd=|jddrLt|jd}t|}||_|td|jddS)Nr r r z-nZFoundz solutions.) sysr$argvintrrrr r)r%rrqrrrmainFsr)__main__N)__doc__r$rr)r!rrrr s 8