Cod sursa(job #334412)

Utilizator yane2806Marius Balaban yane2806 Data 26 iulie 2009 17:57:21
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <cstdio>

//using namespace std;
FILE *f,*g;

int n, sol[9];

void init(int k)
{ sol[k]=0;
    }
int succesor(int k)
{ if(sol[k]<n)
   { sol[k]++;
     return 1;}
     return 0;
    }

int valid(int k)
{ int i;
for(i=1;i<=k-1;i++)
     if(sol[k]==sol[i])
          return 0;
  return 1;
    }

int solutie(int k)
{ if(k==n+1)
   return 1;
   return 0;
    }

void back(int k)
{ int j;
if(solutie(k))
    {for(j=1;j<k;j++)
       fprintf(g,"%d ", sol[j]);
       fprintf(g,"\n");
    }else
    {init(k);
    while(succesor(k))
      if (valid(k))
         back(k+1);
        }
}



int main()
{ f=fopen("permutari.in","r");
  g=fopen("permutari.out","w");
  fscanf(f,"%d",&n);

  back(1);
  fclose(f);fclose(g);
    }