Pagini recente » Cod sursa (job #479457) | Cod sursa (job #3155723) | Cod sursa (job #104283) | Cod sursa (job #3234407) | Cod sursa (job #542605)
Cod sursa(job #542605)
#include<cstdio>
#include<algorithm>
#define l 9
using namespace std;
void citeste();
void init();
void dancing_links();
void afiseaza();
int a[l];
int n;
void citeste()
{
freopen("permutari.in","r",stdin);
scanf("%d",&n);
fclose(stdin);
}
void init()
{
for(int i=1;i<=n;i++) a[i]=i;
}
void dancing_links()
{
int ok=1;
do
{
afiseaza();
int i,j;
ok=0;
for(j=n;j>1;j--) if(a[j]>a[j-1]) //caut de la coada prima "crestere"
{
i=j-1;
ok=1;
break;
}
for(j=n;j>=1;j--) if(a[j]>a[i]) break;
swap(a[i],a[j]);
reverse(a+i+1,a+n+1);
}while(ok);
}
void afiseaza()
{
for(int i=1;i<=n;i++) printf("%d ",a[i]);
printf("\n");
}
int main()
{
citeste();
init();
freopen("permutari.out","w",stdout);
dancing_links();
fclose(stdout);
return 0;
}