Cod sursa(job #412040)

Utilizator PopaStefanPopa Stefan PopaStefan Data 5 martie 2010 12:20:37
Problema Generare de permutari Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
//Generare de permutari iterativ
#include<fstream>
#define nmax 9

using namespace std;

ifstream fin("permutari.in");
ofstream fout("permutari.out");

int n,x[nmax];

void afisare()
{for(int i=1;i<=n;i++)
   fout<<x[i];
fout<<'\n';
}

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

void back()
{int k;
k=1;
while(k>0)
    if(x[k]<n)
       {x[k]++;
       if(valid(k)) if(k==n) afisare();
                     else {k++;
                           x[k]=0;
                          }
       }
      else k--;
}

int main()
{fin>>n;
back();
fin.close();
fout.close();
return 0;
}