Cod sursa(job #1330666)

Utilizator ovidiuz98Zamfir Ovidiu ovidiuz98 Data 30 ianuarie 2015 21:10:53
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

using namespace std;

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

int N,sol[15],A[100],B[100],solprim[15],C[15],nr;
void back(int k){
    if(k==N+1){
        nr++;
        if(nr==1)
            for(int i=1;i<=N;i++)
                solprim[i]=sol[i];
        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";
    for(int i=1;i<=N;i++)
        fout<<solprim[i]<<" ";
    fin.close();fout.close();
    return 0;
}