Cod sursa(job #1404278)

Utilizator raduzxstefanescu radu raduzx Data 27 martie 2015 23:17:56
Problema Problema Damelor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.29 kb
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;
  ifstream f("damesah.in");
    ofstream g("damesah.out");
int x[20];
int n,nr;
void afisare()
{
    int i;
    for(i=1;i<=n;i++)
        g<<x[i]<<" ";
    g<<'\n';
}
bool verif(int i)
{
    int j;
    for(j=1;j<=i-1;j++)
    {
        if(x[j]==x[i])
            return 0;
        if(abs(x[j]-x[i])==i-j)
            return 0;
    }
    return 1;
}
int main()
{

    int i,ci,j;
    f>>n;
    i=1;
    while(i>0)
    {
        x[i]++;
        if(x[i]>n)
        {
            x[i]=0;
            i--;
        }
        else
            if(verif(i)==1)
                if(i==n) {nr+=1;afisare();ci=x[1];i=0;}
                else
                {
                    i++;
                }
    }
    i=ci;
    for(j=ci;j<=n/2;j++)
    {
        x[1]=j;
        i=2;
        while(i>0)
        {
            x[i]++;
            if(x[i]>n)
            {
                x[i]=0;
                i--;
            }
            else
                if(verif(i)==1)
                    if(i==n) {nr+=1;}
                    else
                    {
                        i++;
                    }
        }
    }
    g<<nr*2;
    f.close();
    g.close();
    return 0;
}