Cod sursa(job #1675371)

Utilizator Andrei_Gamerul9112Madarasan Andrei Andrei_Gamerul9112 Data 5 aprilie 2016 11:56:32
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n,st[100],k,sw=1,num;
int valid(int k)
{
    int i;
    for(i=1;i<k;i++)
        if((st[i]==st[k])||(st[i]-i==st[i+1]-(i+1))||(k-i==k-st[i]))return 0;
    return 1;
}
void tip(int k)
{
    int i;
    for(i=1;i<=n;i++)
        fout<<st[i]<<' ';
    fout<<'\n';
}
void back(int k)
{
    int i;
    for(i=1;i<=n;i++)
    {
        st[k]=i;
        if(valid(k))
            if(k==n)
            {
                if(sw)
                {
                    tip(k);
                    num=1;
                    sw=0;
                }
                else num++;
            }
            else back(k+1);
    }
}
int main()
{
    fin>>n;
    back(1);
    fout<<num;
    return 0;
}