Cod sursa(job #156851)

Utilizator igsifvevc avb igsi Data 12 martie 2008 19:30:13
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<stdio.h>

#define max 9
#define in "permutari.in"
#define out "permutari.out"

FILE *fout=fopen(out,"w");
int n,a[max];

void afisare();
void back(int poz);
int verif(int poz);

int main()
{
    FILE *fin=fopen(in,"r");
    fscanf(fin,"%d",&n);

    
    
    back(1);
    
    fclose(fout);
    return 0;
}

void back(int poz)
{
     if(poz>n)
        afisare();
     else
       for(int i=1;i<=n;i++)
       {
           a[poz]=i;
           if(verif(poz)) back(poz+1);
       } 
}

int verif(int poz)
{
    for(int i=1;i<poz;i++)
      if(a[i]==a[poz]) return 0;
     
     return 1;
} 

void afisare()
{
     for(int i=1;i<=n;i++)
       fprintf(fout,"%d ",a[i]);
     fprintf(fout,"\n");
}