Cod sursa(job #145730)

Utilizator igorPirnau Igor igor Data 29 februarie 2008 11:47:44
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>

#define nmax 10

int i, k, n, ok, s[nmax];

void afisare()
{
    int i;
    for(i=1; i<=n; i++) printf("%d ", s[i]);
    printf("\n");
}

int main()
{
    freopen ("permutari.in", "r", stdin);
    freopen ("permutari.out", "w", stdout);

    scanf("%d", &n);

    k=1; s[k]=0;
    while(k){
        s[k]++;
        ok=0;
        while( !ok && s[k]<=n ){
            ok=1;
            for(i=1; i<k; i++) if(s[i]==s[k]) ok=0;
            if(!ok) s[k]++; 
        }

        if(s[k]<=n)
            if(k==n) afisare();
                else{ k++; s[k]=0; }
            else k--;
    }


    return 0;
}