Cod sursa(job #1582988)

Utilizator PraetorGrigorosoaia Florin Praetor Data 28 ianuarie 2016 17:38:27
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include<fstream>
#define NMAX 19

using namespace std;

FILE*in;
ofstream out("combinari.out");

int n;
int p;
int SOL[NMAX];

void read()
{
    in=fopen("combinari.in", "r");

    fscanf(in, "%d%d", &n, &p);
}

void initializ(int k)
{
    SOL[k]=0;
}

bool exist(int k)
{
    if (SOL[k] < n)
        return true;
    return false;
}

bool condition(int k)
{
    if (SOL[k-1] >= SOL[k])
        return false;
    return true;
}

bool solution(int k)
{
    if (k == p)
        return true;
    return false;
}

void show()
{
    for (int i=1; i<=p; i++)
        out<<SOL[i]<<" ";
    out<<'\n';
}

void BKT(int K)
{
    while (K > 0)
    {
        if (exist(K))
        {
            SOL[K]++;
            if (condition(K))
            {
                if (solution(K))
                    show();
                else
                {
                    K++;
                    initializ(K);
                }
            }
        }
        else
            K--;
    }
}

int main()
{
    read();
    BKT(1);

    return 0;
}