Cod sursa(job #1101482)

Utilizator DaNutZ2UuUUBB Bora Dan DaNutZ2UuU Data 8 februarie 2014 15:46:28
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n, x[20], v[20][20], nr;

void afisare(){
    for(int i=1; i<=n; i++)
        g<<x[i]<<' ';
    g<<"\n";
}

void back(int k){
    if(k==n+1)
    {
        if(nr==0)
            afisare();
        nr++;
    }
    else
    {
        for(int i=1; i<=n; i++)
            if(v[k][i]==0)
            {
                x[k]=i;
                for(int j=k+1, p=1; j<=n; j++, p++)
                {
                    v[j][i]++;
                    if(i+p<=n)
                        v[j][i+p]++;
                    if(i-p>0)
                        v[j][i-p]++;
                }
                back(k+1);
                for(int j=k+1, p=1; j<=n; j++, p++)
                {
                    v[j][i]--;
                    if(i+p<=n)
                        v[j][i+p]--;
                    if(i-p>0)
                        v[j][i-p]--;
                }
            }
        else;
    }
}

int main(){
    f>>n;
    back(1);
    g<<nr<<"\n";
    return 0;
}