Cod sursa(job #1902982)

Utilizator alexandra_paticaAndreea Alexandra Patica alexandra_patica Data 4 martie 2017 21:46:30
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <cstdio>
#include <cstdlib>
using namespace std;

int n, st[20], p, ok, nr;
int valid (int k)
{
    for (int i=1; i<k; i++)
        if (st[i]==st[k] || (k-i==abs(st[k]-st[i]))) return 0;
    return 1;
}

void permut (int k)
{
    for (int x=1; x<=n; x++){
        st[k]=x;
        if (valid(k)){
            if (k==n){
                nr++;
                if (!ok){
                    for (int i=1; i<=k; i++)
                        printf("%d ", st[i]);
                    printf("\n");
                    ok=1;
                }
            }
            else permut(k+1);
        }
    }
}

int main (){
    freopen("damesah.in", "r", stdin);
    freopen("damesah.out", "w", stdout);

    scanf("%d", &n);
    permut(1);
    printf("%d", nr);
    return 0;
}