Cod sursa(job #1674920)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 4 aprilie 2016 22:40:00
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

ifstream in("damesah.in");
ofstream out("damesah.out");
const int NMAX = 15;
int st[NMAX];
int n,vf=1;
long long int nr = 0;
int k = 1;

void afisare()
{
    if(k)
    {
        for(int i=1;i<=n;i++)
        out<<st[i]<<" ";
        out<<"\n";
        k = 0;
    }
    nr++;
}

int ok()
{
    if(vf>1)
    {
        for(int i=1;i<vf;i++)
        if(st[vf]==st[i] || abs(vf-i)==abs(st[vf]-st[i]))
            return 0;
    }
    return 1;
}

int main()
{
    in>>n;
    in.close();
    while(vf>0)
    {
        st[vf]++;
        if(st[vf] > n)
            vf--;
        else
        {
            if(ok())
            {
                if(vf==n)
                    afisare();
                else
                    st[++vf] = 0;
            }
        }
    }
    out<<nr<<"\n";
    out.close();
    return 0;
}