Cod sursa(job #1698003)

Utilizator AlexEnacheEnache Alexandru-Paul AlexEnache Data 3 mai 2016 14:13:30
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
using namespace std;
ifstream fin ("combinari.in");
ofstream fout("combinari.out");
int a,b,v[100000];
void init(int k)
{
    v[k]=0;
}
int succesor(int k)
{
    int i;
    i=v[k]+1;
    if(v[k]<a)
    {
        v[k]=v[k]+1;
        v[k+1]=i;
        return 1;
    }
    return 0;
}
int solutie(int k)
{
    int i;
    for(i=1;i<k;i++)
        if(v[k]==v[i])
            return 0;
    for(i=1;i<=k;i++)
        if(v[i]>v[i+1])
            return 0;
    return 1;
}
int valid(int k)
{
    return (k==b);
}
void tipar(int k)
{
    int i;
    for (i=1;i<=k;i++)
        fout<<v[i]<<' ';
    fout<<'\n';
}
void bt(int k)
{
    init(k);
    while(succesor(k))
        if(solutie(k))
            if(valid(k)) tipar(k);
            else bt(k+1);
}
int main()
{
    fin>>a>>b;
    bt(1);
    fin.close();
    fout.close();
    return 0;
}