Cod sursa(job #828923)

Utilizator TheNechizFMI Razvan Birisan TheNechiz Data 4 decembrie 2012 17:36:13
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
# include <fstream>

using namespace std;

ifstream fin("permutari.in");
ofstream fout("permutari.out");

int st[10],n,k;

void Init()
{ st[k] = 0 ; }

bool Am_Succesor()
{
    if( st[k] < n )
    {
        st[k]++;
        return true;
    }
    else return false;
}

bool E_Valid()
{
    for( int i = 1 ; i < k ; ++i )
        if( st[i] == st[k] )
            return false;
    return true;
}

bool Solutie()
{ return k==n; }

void Tipar()
{
    for( int i = 1 ; i <= n ; ++i )
        fout << st[i] << ' ';
    fout << '\n';
}

void back()
{
    int AS;
    k = 1;
    Init();
    while( k > 0 )
    {
        do {} while( (AS=Am_Succesor()) && !E_Valid() );
        if( AS )
            if( Solutie() ) Tipar();
            else { ++k; Init(); }
        else --k;
    }
}

main()
{
    fin >> n;
    back();

    fin.close();
    fout.close();
}