Cod sursa(job #3248168)

Utilizator Isleam_EmreIsleam Emre Isleam_Emre Data 10 octombrie 2024 22:08:39
Problema Problema Damelor Scor 90
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <stdio.h>
#include <stdlib.h>
  FILE*fin;
  FILE*fout;
int v[13],n,s = 0;
int mod(int a){
  if(a < 0) return -a;
  else return a;
}
int valid(int k){
  int i;

  for(i = 1; i < k;i++)
    if((v[k] == v[i]) || (k-i == mod(v[k] - v[i])))
      return 0;
  return 1;
}
int fol(int k){
  for(int i = 1; i < k; i++)
    if(v[k] == v[i])
      return 0;
  return 1;
}
void back (int k){
  for(int i=1; i<=n ; i++){
    v[k] = i;
    if( fol(k)){
      if(k == n && valid(k)){
        if(s == 0){
          for(int j = 1; j <= n;j++)
            fprintf(fout,"%d ",v[j]);
          fprintf(fout,"\n");}
        s++;
      }
      else if(valid(k))
        back( k + 1 );
    }
  }
}
int main()
{

  fin =fopen("damesah.in","r");
  fout = fopen("damesah.out","w");
  fscanf(fin,"%d",&n);
  back(1);
  fprintf(fout,"%d",s);
  return 0;
}