Cod sursa(job #1367626)

Utilizator ovidiuz98Zamfir Ovidiu ovidiuz98 Data 1 martie 2015 23:44:46
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#define DIM 100

using namespace std;

ifstream fin("damesah.in");
ofstream fout("damesah.out");

int N,C[DIM],A[DIM],B[DIM],sol[DIM],nr;
void afis(){
    for(int i=1;i<=N;i++)
        fout<<sol[i]<<" ";
    fout<<"\n";
}
void back(int k){
    if(k==N+1){
        if(nr==0)
            afis();
        nr++;
        return;
    }
    for(int i=1;i<=N;i++)
        if(!C[i] && !A[k+i] && !B[k-i+N]){
            C[i]=1;
            A[k+i]=1;
            B[k-i+N]=1;
            sol[k]=i;
            back(k+1);
            C[i]=0;
            A[k+i]=0;
            B[k-i+N]=0;
        }
}
int main(){
    fin>>N;
    back(1);
    fout<<nr<<"\n";
    fin.close();fout.close();
    return 0;
}