Cod sursa(job #2274287)

Utilizator HoriqHoria Pacurar Horiq Data 1 noiembrie 2018 17:16:10
Problema Generare de permutari Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 kb
#include <fstream>

using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int st[8],viz[8],k,n,v[15];
void init()
{
    st[k]=0;
}
int succesor()
{
    if(st[k]<n)
    {
        st[k]++;
        return 1;
    }
    return 0;
}
int valid()
{
    if(viz[st[k]]==0)
    {
        viz[st[k]]=1;
        return 1;
    }
    return 0;
}
int solutie()
{
    return k==n;
}
void print()
{
    int i;
    for(i=1;i<=n;i++)
        fout<<st[i]<<" ";
    fout<<endl;
}
void backt()
{
    int es,ev;
    k=1;
    init();
    while(k>0)
    {
        do
        {
            es=succesor();
            if(es)
                ev=valid();
        }while(es && !ev);
        if(es)
            if(solutie())
        {
            print();
            viz[st[k]]=0;
        }
        else
        {
            k++;
            init();
        }
        else
        {
            k--;
            viz[st[k]]=0;
        }
    }
}
int main()
{
    int i;
    fin>>n;
    backt();
    return 0;
}