Pagini recente » Cod sursa (job #1986773) | Cod sursa (job #2844351) | Cod sursa (job #2784359) | Cod sursa (job #3155525) | Cod sursa (job #1434812)
#include <cstdio>
#include <algorithm>
using namespace std;
int n,p[10],uz[10];
int genperm(int n, int k)
{
/* cand apelam functia genperm cu parametrul k
pozitiile 1,2,...,k-1 din vect p sunt fizae*/
if(k>n)
{
for(int i=1;i<=n;i++)
printf("%d ",p[i]);
printf("\n");
}
else
{
for(int i=1;i<=n;i++)
if(!uz[i]) /// daca nu este utilizat deja in p
{
p[k]=i;
uz[i]=1;
/* i este un candidat ,deoarece nu este
imaginea nici unui alt element fixat*/
genperm(n,k+1); /// apel recursiv
uz[i]=0;
}
}
}
int main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
genperm(n,1);
return 0;
}