Cod sursa(job #870268)

Utilizator pitradaPit-Rada Ionel-Vasile pitrada Data 3 februarie 2013 00:56:10
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<stdio.h>
int n, x[20],i;

int nextp()
{
    int i,j,aux;
    j=n-1;
    while (j>=1 && x[j]>x[j+1]) j--;
    if (j==0) return 0;
    i=n;
    while (x[i]<x[j])i--;
    aux=x[j];
    x[j]=x[i];
    x[i]=aux;
    i=j+1; j=n;
    while (i<j){
        aux=x[i];
        x[i]=x[j];
        x[j]=aux;
        i++;
        j--;
    }
    return 1;
}

void tip()
{
    int i;
    for (i=1;i<=n;i++)
        printf("%d ",x[i]);
    printf("\n");
}
int main()
{
    freopen("permutari.in","rt",stdin);
    freopen("permutari.out","wt",stdout);
    scanf("%d",&n);
    for (i=1;i<=n;i++) x[i]=i;
    do{  tip(); }  while(nextp());
    fclose(stdin);
    fclose(stdout);
    return 0;
}