Cod sursa(job #1240781)

Utilizator andrei_diaconuAndrei Diaconu andrei_diaconu Data 12 octombrie 2014 00:49:07
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <string.h>
#define NMax 15
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n, col[NMax], sol[NMax], nrsol, ok;
bool c[NMax], ds[30], dp[30];
inline void back(int k)
{
    if (k==n+1) {
        if (nrsol==0)
            for (int i=1; i<=n; i++)
                g << col[i] << " ";
        nrsol++;
        return;
    }
    for (int i=1; i<=n; i++) {
        if (c[i]==0 && ds[i+k]==0 && dp[n-i+k]==0) {
            col[k]=i;
            c[i]=1;
            ds[i+k]=1;
            dp[n-i+k]=1;
            back(k+1);
            c[i]=0;
            ds[i+k]=0;
            dp[n-i+k]=0;
        }
    }
}
int main()
{
    f>>n;
    back(1);
    g<<"\n";
    g<<nrsol;
    return 0;
}