Cod sursa(job #1017809)

Utilizator mucenic_b101Bogdan Mucenic mucenic_b101 Data 28 octombrie 2013 15:41:11
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<cstdio>

int st[9], n;

void afisare( FILE *g ) {
    for( int i = 1 ; i <= n ; ++i )
        fprintf( g, "%d ", st[i] );
    fprintf( g, "\n" );
}

int valid( int niv ) {
    for( int i = 1 ; i < niv ; ++i )
        if( st[i] == st[niv] )
            return 0;
    return 1;
}

void perm( int niv, FILE *g ) {

    if( niv == n + 1 )
        afisare( g );
    else
        for( int i = 1 ; i <= n ; ++i )
        {
            st[niv] = i;
            if(valid( niv ) )
                perm( niv + 1, g );
        }
}

int main () {
    FILE *f, *g;
    f = fopen( "permutari.in", "r" );
    g = fopen("permutari.out", "w" );

    fscanf( f, "%d", &n );

    perm( 1, g );

    fclose( f );
    fclose( g );

    return 0;
}