Pagini recente » Cod sursa (job #183663) | Cod sursa (job #763336) | Cod sursa (job #2273923) | Cod sursa (job #3164039) | Cod sursa (job #157829)
Cod sursa(job #157829)
#include <cstdio>
int n,x[10],i,j,k;
void schimba(int &x,int &y){
int aux=x;x=y;y=aux;}
int main(){
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
for (i=0;i<=n;i++) x[i]=i;
k=n-1;
while (k>0) {
for (i=1;i<=n;i++) printf("%d ",x[i]);
printf("\n");
j=k+1;
for (i=k+2;i<=n;i++)
if (x[i]>x[k] && x[i]<x[j]) j=i;
schimba(x[k],x[j]);
for (i=1;i<=(n-k)/2;i++) schimba(x[k+i],x[n+1-i]);
k=n-1;
while (x[k]>x[k+1]) k--;
}
for (i=1;i<=n;i++) printf("%d ",x[i]);
printf("\n");
fclose(stdout);
return 0;
}