Cod sursa(job #2174381)

Utilizator AlexnolifeAlexandru Ica Alexnolife Data 16 martie 2018 11:48:09
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>

std::ifstream f("combinari.in");
//std::ofstream g("combinari2.out");
std::ofstream g("combinari.out");

int st[20];
int K, N;

bool valid(int k)
{
    for(int i = 1; i < k; ++i)
        if(st[i] >= st[k])
            return false;

    return true;
}

bool sol(int k)
{
    if(k == K)
        return true;
    return false;
}

void Print()
{
    for(int i = 1; i <= K; ++i)
        g << st[i] << ' ';

    g << '\n';
}

void BackTracking()
{
    int k = 1;
    st[k] = 0;

    while(k > 0) {
        st[k]++;

        if(st[k] <= N) {
            if(valid(k)) {
                if(sol(k)) {
                    Print();
                }
                else   {
                    st[++k] = 0;
                }
            }
        }
        else {
            --k;
        }
    }
}

int main()
{
    f >> N >> K;

    BackTracking();

    return 0;
}