Cod sursa(job #1820762)

Utilizator calinlixandruLixandru Calin-Mihai calinlixandru Data 2 decembrie 2016 10:59:54
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>

using namespace std;
int n,m,st[15];
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int valoare(int niv)
{
    int ok=0;
    if(niv<=n && st[niv]<n)
    {
        st[niv]++;
        ok=1;
    }
    return ok;
}
int valid(int niv)
{
    int ok=1;
    if(st[niv]<=st[niv-1])
        ok=0;
    return ok;
}
int solutie(int niv)
{
    if(niv==m)
        return 1;
    else
        return 0;
}
inline void tipar(int niv)
{
    int i;
    for(i=1;i<=niv;i++)
        fout<<st[i]<<" ";
    fout<<'\n';
}
void backtr()
{
    int k,ams,ev;
    k=1;
    while(k>0)
    {
        do
        {
            ams=valoare(k);
            if(ams)
                ev=valid(k);
        }while(ams && !ev);
        if(ams && ev)
        {
            if(solutie(k)) tipar(k);
            else
            {
                k++;
                st[k]=0;
            }
        }else
        k--;
    }
}
int main()
{
    fin>>n>>m;
    backtr();
    return 0;
}