Cod sursa(job #1019825)

Utilizator BFlorin93Balint Florin-Lorand BFlorin93 Data 31 octombrie 2013 23:04:33
Problema Generare de permutari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>

int array[12];
  FILE *f;
  FILE *g;


int verificare (int pos)
{
 int i;
 int ok=1;
 for (i=1;i<pos;i++) {if  (array[i]==array[pos]) {ok=0;break;}}

 return ok;
}

void printare(int n)
{
 int i;
 for (i=1;i<=n;i++)    fprintf(g,"%d ",array[i]);
 fprintf(g,"\n");
}


void backtrack(int pos,int n)
{
 if (pos > n) printare(n);
 else
 {
   int i;
    for (i=1;i<=n;i++)
    {
     array[pos]=i;
     if (verificare(pos)==1) backtrack(pos+1,n);
    }
 }
}

int main()
{
  int i,n;



  f=fopen("permutari.in","r");
  g=fopen("permutari.out","w");

  for (i=1;i<=n;i++) array[i]=0;

  fscanf(f,"%d",&n);
  backtrack(1,n);

 return 0;

}