Pagini recente » Cod sursa (job #202432) | Cod sursa (job #1185170) | Cod sursa (job #1723176) | Profil M@2Te4i | Cod sursa (job #608300)
Cod sursa(job #608300)
#include<stdio.h>
long a[10],n;
void next_perm()
{
int i,aux,j,min=200,poz=n-2;
for (i=n-2;i>=0;i--)
if (a[i]<a[i+1])
{
for (j=i+1;j<n;j++)
if (a[i]<a[j])
if (a[j]<=min)
{
poz=j;
min=a[j];
}
aux=a[i];
a[i]=a[poz];
a[poz]=aux;
for (j=1;j<=(n-i)/2;j++)
{
aux=a[i+j];
a[i+j]=a[n-j];
a[n-j]=aux;
}
break;
}
}
int main()
{
long i,j;
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%ld",&n);
for (i=0;i<=n-1;i++)
a[i]=i+1;
n+=2;
long p,ok;
p=1;
for (i=1;i<=n-2;i++)
p*=i;
for (i=1;i<=p;i++)
{
ok=0;
for (j=0;j<=n-3;j++)
if (a[j]==0)
ok=1;
if (ok==0)
{
for (j=0;j<=n-3;j++)
printf("%ld ",a[j]);
printf("\n");
}
else
i--;
next_perm();
}
}