Cod sursa(job #3314804)

Utilizator oliviamMarin Olivia oliviam Data 11 octombrie 2025 10:42:09
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>

using namespace std;

ifstream f("permutari.in");
ofstream g("permutari.out");

int x[9], k, n;

void init(int k)
{
    x[k]=0;
}

int succesor(int k)
{
    if(x[k]<n)
    {
        x[k]++;
        return 1;
    }
    return 0;
}

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

int solutie(int k)
{
    return k==n;
}

void tipar(int k)
{
    for(int i=1; i<=n; i++)
        g<<x[i]<<' ';
    g<<endl;
}

void bt()
{
    int as, ev;
    k=1;
    init(k);
    while(k>0)
    {
        as=1, ev=0;
        while(as && !ev)
        {
            as=succesor(k);
            if(as)
                ev=valid(k);
        }
        if(as)
            if(solutie(k))
                tipar(k);
            else
            {
                k++;
                init(k);
            }
        else k--;
    }
}

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