Cod sursa(job #1408820)

Utilizator cypy2474alupei ciprian cypy2474 Data 30 martie 2015 11:43:26
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 1.15 kb
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int a[14],n,i,j,k,nr,ok=0;
void afis()
{
    for(int i=1;i<=n;i++)
        g<<a[i]<<" ";
    g<<"\n";
}
int valid(int k)
{
    int i;
    for(i=1;i<k;i++)
    if(a[i]==a[k]||fabs(a[i]-a[k])==fabs(k-i))
    return 0;
    return 1;
}
void dame(int k)
{
    if(k==n+1)
    {
        if(ok==0)
        afis(),ok=1;
        nr++;
    }
    else
        for(i=1;i<=n;i++)
            if(valid(i)==1)
                {
                    a[k]=i;
                    dame(k+1);
                }
}
int main()
{

    f>>n;
    do
    {
        do
        {
            a[i]++;
            if(a[i]>n)
            {
                a[i]=0;
                i--;
            }
            else
            if(valid(i))
            i++;
        }while(i<=n&&i>0);
        if(i>n)
        {
            if(ok==0)
            {
                for(j=1;j<=n;j++)
                g<<a[j]<<" ";
                ok=1;
            }
            i=n;nr++;
        }
    }while(i>0);
    g<<"\n"<<nr;
    return 0;

}