Cod sursa(job #2659514)

Utilizator Gota_AndreiGota Andrei Gota_Andrei Data 16 octombrie 2020 21:56:23
Problema Generare de permutari Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int x[20],as,ev,k,n;
void succesor (int x[20], int k, int & as)
{
    if (x[k]<n)
    {
        x[k]++;
        as=1;
    }
    else
        as=0;
}
void valid (int x[20], int k, int & ev)
{
    ev=1;
    for (int i=1;i<k;i++)
        if (x[i]==x[k])
        ev=0;
}
void afis (int x[20], int k)
{
    for (int i=1;i<=k;i++)
        fout<<x[i]<<" ";
    fout<<endl;
}
void bkt()
{
    k=1;
    x[k]=0;
    while (k>0)
    {
        do{
            succesor(x,k,as);
            if (as)
                valid(x,k,ev);
        }while (as && !ev);
    if (as)
    {
        if (k==n)
        afis(x,k);
        else
        {
            k++;
            x[k]=0;
        }
    }
    else
        k--;
    }
}
int main ()
{
    fin>>n;
    bkt();
    return 0;
}