Mai intai trebuie sa te autentifici.
Cod sursa(job #1330667)
Utilizator | Data | 30 ianuarie 2015 21:11:54 | |
---|---|---|---|
Problema | Problema Damelor | Scor | 100 |
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);
for(int i=1;i<=N;i++)
fout<<solprim[i]<<" ";
fout<<"\n"<<nr;
fin.close();fout.close();
return 0;
}