Cod sursa(job #1011019)

Utilizator Dayanna000Amegica Dayanna Dayanna000 Data 16 octombrie 2013 08:38:13
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>
using namespace std;
int st[1000],k,as,ev,i,n;
ifstream f("permutari.in");
ofstream g("permutari.out");
void init()
 {
     st[k]=0;
 }
void succesor()
 {

  if(k<=n && st[k]<n)
     {
         as=1;
         st[k]++;
     }
     else
     as=0;
 }
 void valid()
 {

     ev=1;
     for(i=1;i<=k-1;i++)
        if(st[i]==st[k])
           ev=0;
 }
 int solutie(int k)
  {

      if(k==n)
        return 1;
        else
        return 0;
  }
  void tipar()
    {
        for(i=1;i<=k;i++)
          g<<st[i]<<"  ";
        g<<endl;
    }

int main()
{


 f>>n;
 k=1;
 init();
 while(k>0)
   {
    do
     {

      succesor();
      if(as)
        valid();

     }
     while(!((!as)||(as&&ev)));
     if(as)
      if(solutie(k))
         tipar();
         else
         {
             k++;
             init();
         }
        else
        k--;
   }
f.close();
g.close();
return 0;
}