# Backtrack ## Problema das n Rainhas **Problema:** Dado `n>0`, imprima, se existir, uma solução para o problema das `n` rainhas. Exemplos: - `n=4` ``` | | x | | | | | | | x | | x | | | | | | | x | | ``` - n=3: Não tem solução A estratégia que usaremos será backtrack: tentativa e erro implementada numa pilha. Usamos a pilha para guardar as decisões tomadas (em que coluna cada rainha foi colocada) e, quando não conseguimos colocar uma rainha no tabuleiro voltamos à última decisão tomada e tentamos mudá-la. ```C void nRainhas(int n) { Pilha pos = CriaPilha(n); int **tab, i, j, atual, col, temsol = 1; tab = malloc(n*sizeof(int *)); for (i=0; i