Cod sursa(job #1312539)

Utilizator hrazvanHarsan Razvan hrazvan Data 9 ianuarie 2015 17:44:42
Problema Problema Damelor Scor 50
Compilator c Status done
Runda Arhiva educationala Marime 0.88 kb
#include <stdio.h>
#define MAXN 13
FILE *out;
int rez = 0, sol[MAXN];
char c[MAXN], p[MAXN], s[MAXN];

void bkt(int pas, int n){
  int i;
  if(pas < n){
    for(i = 0; i < n; i++){
      if(c[i] == 0 && p[n - pas - 1 + i] == 0 && s[2 * n - 2 - i - pas] == 0){
        sol[pas] = i + 1;
        c[i] = 1;
        p[n - pas - 1 + i] = 1;
        s[2 * n - 2 - i - pas] = 1;
        bkt(pas + 1, n);
        c[i] = 0;
        p[n - pas - 1 + i] = 0;
        s[2 * n - 2 - i - pas] = 0;
      }
    }
  }
  else{
    if(rez == 0){
      for(i = 0; i < n; i++){
        fprintf(out, "%d ", sol[i]);
      }
      fputc('\n', out);
    }
    rez++;
  }
}

int main(){
  FILE *in = fopen("damesah.in", "r");
  int n;
  fscanf(in, "%d", &n);
  fclose(in);
  out = fopen("damesah.out", "w");
  bkt(0, n);
  int i;
  fprintf(out, "%d", rez);
  fclose(out);
  return 0;
}