Cod sursa(job #303314)
Utilizator | Mihai Gheorghe GheorgheMihai | Data | 9 aprilie 2009 19:02:39 |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include<stdio.h>
int n,sol[20];
int f[20];
void scrie()
{
for(int i=1;i<=n;++i)
printf("%d ",sol[i]);
printf("\n");
}
void back(int k)//completeaza elem de pe poz k din sol
{
for(int i=1;i<=n;++i)//aleg o valoare pt sol[k]
if(f[i]==0)
{
f[i]=1;
sol[k]=i;
if(k<n)
back(k+1);
else
scrie();
f[i]=0;
}
}
int main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
back(1);
return 0;
}