Cod sursa(job #956838)

Utilizator cousin.batmanVaru Batman cousin.batman Data 3 iunie 2013 22:31:38
Problema Generare de permutari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.73 kb
#include<stdio.h>

int n;

void generate(){
    int i, m=0, x[n], v[n];

    for(i=0; i<n; i++)  v[i]=0;

    while(m>=0){
        if(m<n){
            for(i=0; i<n && v[i]; i++);
            x[m]=i, v[i]=1, m++;
            continue;
        }

        for(i=0; i<n; i++) printf("%d ", x[i]+1);
        printf("\n");

        while(--m>=0){
            v[x[m]]=0;
            for(i=x[m]+1; i<n && v[i]; i++);
            if(i<n){
                x[m]=i;
                v[i]=1;
                m++;
                break;
            }
        }
    }
}

int main(){
    freopen("permutari.in", "rt", stdin);
    freopen("permutari.out", "wt", stdout);

    scanf("%d", &n);
    generate();

    fclose(stdin);
    fclose(stdout);
    return 0;
}