Cod sursa(job #710580)

Utilizator FayedStratulat Alexandru Fayed Data 10 martie 2012 01:40:31
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include<fstream>
using namespace std;

short n,k, ST[9];
bool as,ev;
ifstream f("permutari.in");
ofstream g("permutari.out");

void init()
{

   ST[k]=0;

    }
void succ()
{
    if(ST[k]<n)
   {
       ST[k]++;
       as=1;

       }
  else as=0;

    }

void valid()
{
    ev=1;
 for(int i=1;i<k;i++)
  if(ST[i]==ST[k])
  ev=0;
    }

 void tipar()
 {

   for(int i=1;i<=k;i++)
    g<<ST[i]<<" ";;
    g<<'\n';
     }

  int sol()
  {
      return (k==n);

      }

 void back()
 {
     k=1;
  init();
    while(k)
 {

     do{
         succ();
         if(as)
         valid();
         }
  while(as && !ev);
  if(as)
   if(sol())
   tipar();
   else{

   k++; init();
       }
  else k--;
     }
}

int main()
{
    f>>n;
 back();
f.close();
g.close();
return 0;

    }