Cod sursa(job #157829)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 13 martie 2008 12:04:13
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#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;
}