Cod sursa(job #1010891)

Utilizator MarghescuGabriel Marghescu Marghescu Data 15 octombrie 2013 21:09:25
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include<fstream>
using namespace std;
ifstream f("permutari.in");
ofstream g("permutari.out");
int n,x[100],k;
void init()
{
    x[k]=0;
}
int succesor()
{
    if(x[k]<n)
    {
        x[k]++;
        return 1;
    }
    else
    return 0;
}
int valid()
{
    int i;
    int ev=1;
    for(i=1;i<k;i++)
    {
        if(x[k]==x[i])
        {
            ev=0;
        }
    }
    return ev;
}
 
int solutie()
{
    if(k==n)
        return 1;
    else
        return 0;
}
void tipar()
{
    int i;
    for(i=1;i<=n;i++)
    {
        g<<x[i]<<" ";
    }
    g<<"\n";
} 
int back()
{   int as;
    k=1; init();
    while(k>0)
    {
        do {} while((as=succesor())&& !valid());
        if(as)
             if(solutie())   tipar();
                else {   k++;
                         init();
                    }
                else
                k--;
    }
    return 0;
} 
int main()
{
    f>>n;
    back();
    f.close();
    g.close();
    return 0;
}