Cod sursa(job #1307969)

Utilizator refugiatBoni Daniel Stefan refugiat Data 3 ianuarie 2015 10:12:36
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include<iostream>
#include<fstream>
#include<algorithm>
#include<bitset>
#include<math.h>
using namespace std;
bool b;
int cont;
int v[13];
FILE* so=fopen("damesah.out","w");
void afis(int n)
{
    int i;
    for(i=0;i<n;++i)
       fprintf(so,"%i ",v[i]+1);
    b=true;
}
void dame(int n,int k)
{
    if(k==n)
    {
        if(!b)
            afis(n);
        ++cont;
    }
    else
    {
        int i,j;
        for(i=0;i<n;++i)
        {
            for(j=0;j<k;++j)
            {
                if(v[j]==i||abs(v[j]-i)==k-j)
                    break;
            }
            if(j==k)
            {
                v[k]=i;
                dame(n,k+1);
            }
        }
    }
}
int main()
{
    ifstream si;
    si.open("damesah.in");

    int n;
    si>>n;
    dame(n,0);
    fprintf(so,"\n%i\n",cont);
}