Cod sursa(job #228863)

Utilizator sticksuTihu Mircea sticksu Data 8 decembrie 2008 16:17:48
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream.h>

ifstream f("permutari.in");
ofstream g("permutari.out");

int st[100],n;

int succesor(int k)
{if(st[k]<n)
    {st[k]++; return 1;}
 else return 0;
}

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

int tiparire(int k)
{int i;
 for(i=1;i<=k;i++)
     g<<st[i]<<' ';
 g<<endl;
 return 0;
}

int main()
{f>>n;
 int k=1;
 st[k]=0;
 int as,ev;
 while(k)
   {do{as=succesor(k);
       if(as) ev=valid(k);
      }while(as&&!ev);
    if(as)
       if(k==n) tiparire(k);
       else {k++; st[k]=0;}
    else k--;
   }
 f.close();
 g.close();
 return 0;
}