Cod sursa(job #272935)

Utilizator PopaStefanPopa Stefan PopaStefan Data 7 martie 2009 23:08:12
Problema Generare de permutari Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
/*Acest program genereaza toate permutarile multimii
{1,2,3 ...N} in ordine lexicografica.
ex: N=3
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
*/
#include<fstream.h>

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

int n,a[10];

int cond(int x,int m)
{int i;
for(i=1;i<=m;i++)
   if(a[i]==x) return 0;
return 1;
}

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

void back(int poz)
{int i;
if(poz<=n)
  for(i=1;i<=n;i++)
     if(cond(i,poz)) {a[poz]=i;
		 if(poz<n) back(poz+1);
		   else afisare();
		 }
}

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