Pagini recente » Cod sursa (job #1391296) | Cod sursa (job #714385) | Cod sursa (job #2669452) | Cod sursa (job #2520207) | Cod sursa (job #246908)
Cod sursa(job #246908)
#include <stdio.h>
#define fin "permutari.in"
#define fout "permutari.out"
#define line printf("\n")
#define FOR(a,b) for( int i=a; i<=b; i++)
#define dim 10
int sw, n , x[dim];
void swap (int &first , int &second);
void generator(void);
void print(void);
int main(void)
{
freopen(fin,"r",stdin);
freopen(fout,"w",stdout);
scanf("%d", &n);
FOR(0,n-1)
x[i]=i+1;
print();
sw = 0;
while( !sw )
{
generator();
if(!sw)
print();
}
line;
fcloseall();
return 0;
}
void swap(int &first, int &second)
{
int aux;
aux = first;
first = second;
second = aux;
}
void generator()
{
if( !sw )
{
for ( int i=n-2; i>=0 && x[i] > x[i+1]; i--);
if( i < 0 )
sw = 1;
else
{
for (int j= n-1; x[i] > x[j]; j--);
swap(x[i], x[j]);
for( j = 1; j <= (n-i)/2; j++)
swap(x[i+j], x[n-j]);
}
}
}
void print()
{
FOR(0,n-1)
printf("%d ",x[i]);
line;
}