Cod sursa(job #394018)

Utilizator al_flAlexandru Flavian al_fl Data 10 februarie 2010 12:48:51
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include<fstream.h>
ifstream f("permutari.in");
ofstream g("permutari.out");
int n,v[8];
void init(int i)
{
    v[i]=0;
}
int succesor(int i)
{
    if(v[i]<n)
        {
            v[i]++;
            return 1;
        }
    return 0;
}
int solutie(int i)
{
    return i==n;
}
int valid(int i)
{
    for(int j=1;j<i;j++)
        {
            if(v[i]==v[j]) return 0;
        }
    return 1;
}
void afisare(int i)
{
    for(int j=1;j<=i;j++)
        {
            g<<v[i]<<' ';
        }
    g<<endl;
        g.close();
}
void bkt()
{
    int i=1;
    init(i);
    while(i>=1)
    {
        int gasit;
        do{}while((gasit=succesor(i)) && !valid(i));
        if(gasit)
        if(solutie(i))
            {
                afisare(i);
            }
        else{i++;init(i);}
        else i--;
    }
}

int main()
{
    f>>n;
    bkt();
    return 0;
}