Pagini recente » Cod sursa (job #2177153) | Cod sursa (job #1723064) | Cod sursa (job #1755006) | Cod sursa (job #1748809) | Cod sursa (job #2065937)
#include <stdio.h>
#define DIM 15
int N, C[DIM], DP[2 * DIM], DS[2 * DIM], cnt, L[DIM];
FILE *fi, *fo;
void print_table(){
int i;
for(i = 1; i <= N ; i++)
fprintf(fo, "%d ", L[i]);
fprintf(fo, "\n");
}
void back(int step){
if(step==N+1){
if(cnt==0)
print_table();
cnt++;
}
int i;
for( i = 1 ; i <= N ; i++)
if(!C[i] && !DP[step - i + DIM] && !DS[step + i]){
C[i] = 1;
DP[step - i + DIM] = 1;
DS[step + i] = 1;
L[step] = i;
back(step+1);
C[i] = 0;
DP[step - i + DIM] = 0;
DS[step + i] = 0;
}
}
int main(){
fi = fopen("damesah.in", "r+");
fo = fopen("damesah.out", "w+");
fscanf(fi , "%d" , &N);
back(1);
fprintf(fo, "%d\n", cnt);
fprintf(fo, "\n");
fclose(fi);
fclose(fo);
return 0;
return 0;
}