Cod sursa(job #152167)

Utilizator Bogdan_tmmTirca Bogdan Bogdan_tmm Data 9 martie 2008 09:47:15
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<iostream.h>
#include<stdio.h>
FILE *f,*g;
int st[100],k,i,t,n,as;
void init()
{
 st[k]=0;
}
int sucesor()
{
 if(st[k]<n)
  {st[k]++; t=1;}
 else
  t=0;
 return t;
}
int valid()
{
 t=1;
 for(i=1;i<=k-1&&t;i++)
  if(st[i]==st[k]) t=0;
 return t;
}
void tipar()
{
 for(i=1;i<=n;i++)
  fprintf(g,"%d ",st[i]);
 fprintf(g,"\n");
}
int solutie()
{
 return(k==n);
}
int main ()
{
 k=1;
 init();
 f=fopen("permutari.in","r");
 g=fopen("permutari.out","w");
 fscanf(f,"%d",&n);
 while(k>0)
 {
  do{}while((as=sucesor())&&(!valid()));
  if(as)
   if(solutie())
     tipar();
   else
     {k++;init();}
  else
   {k--; }
 }
 return 0;
}