Cod sursa(job #1896996)

Utilizator GeorgeCalinPetruta George-Calin GeorgeCalin Data 1 martie 2017 08:46:38
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <cstdio>
#define f stdin
#define g stdout
using namespace std;

int n,k,a1;
int x[120];
int fr[120];

int cond()
{
    return fr[x[a1]]-1;
}

void bkt_comb()
{
    freopen("combinari.out","w",g);
    a1=1;
    while(a1)
    {
        if(x[a1]<k)
        {
            x[a1]++;
            if(cond())
            {
                if(a1==n)
                {
                    for(int i=1;i<=n;i++)
                    {
                        printf("%d ",x[i]);
                    }
                    printf("\n");
                }
                else
                {
                    fr[x[a1]]=1;
                    a1++;
                    x[a1]=x[a1-1];
                }
            }
        }
        else
        {
            x[a1]=0;
            a1--;
            fr[x[a1]]=0;
        }
    }
}
int main()
{
    freopen("combinari.in","r",f);
    scanf("%d %d",&k,&n);
    bkt_comb();
    return 0;
}