Pagini recente » Cod sursa (job #1127824) | Cod sursa (job #2895737) | Cod sursa (job #401892) | Cod sursa (job #2677293) | Cod sursa (job #345675)
Cod sursa(job #345675)
/*
* File: main.cpp
* Author: speedemon
*
* Created on September 3, 2009, 1:07 PM
*/
#include <stdio.h>
#include <stdlib.h>
/*
*
*/
int main(int argc, char** argv)
{int *v;
int n,i,j,k;
bool ok=true;
freopen("permutari.in","rt",stdin);
freopen("permutari.out","wt",stdout);
scanf("%d",&n);
v=(int*)calloc(n,sizeof(n));
for( i=0; i<n; ++i ) v[i]=i+1,printf("%d ",v[i]);
do
{
for( i=n-2; ( i >= 0 ) && ( v[i] > v[i+1] ); --i );
if( i < 0 ) return EXIT_SUCCESS;
for( j=n-1; v[i] > v[j] ; --j );
v[i]+=v[j]; v[j]=v[i]-v[j]; v[i]-=v[j];
for( k=0,j=i+1; j < ( n-i )/2+1; ++j,++k )
{
v[j]+=v[n-k-1];
v[n-k-1]=v[j]-v[n-k-1];
v[j]-=v[n-k-1];
}
printf("\n");
for( i=0; i<n; ++i ) printf("%d ",v[i]);
}while( ok );
return EXIT_SUCCESS;
}