Cod sursa(job #1131641)

Utilizator vlad.rusu11Rusu Vlad vlad.rusu11 Data 28 februarie 2014 22:48:22
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#define NMax 19
using namespace std;

ofstream fout("combinari.out");

short stack[NMax], N, K;

bool valid(short k)
{
    short i;
    for(i = 1 ; i < k ; ++i)
        if(stack[i] == stack[k])
            return false;
    return true;
}

void back(short niv)
{
    if(niv > K)
    {
        for(short i = 1 ; i <= K ; ++i)
            fout << stack[i] << ' ';
        fout << '\n';
    }
    else
    {
        stack[niv] = stack[niv - 1] - 1;
        while(stack[niv] < N)
        {
            ++stack[niv];
            if(valid(niv))
                back(niv + 1);
        }
    }
}

int main()
{
    ifstream fin("combinari.in");

    fin >> N >> K;
    fin.close();

    stack[0] = 1;
    back(1);

    fout.close();
    return 0;
}