Cod sursa(job #1255022)

Utilizator crucerucalinCalin-Cristian Cruceru crucerucalin Data 4 noiembrie 2014 00:26:55
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <vector>


void printComb(const std::vector<int> &v, std::ofstream &out)
{
    for (auto i = 1u; i < v.size(); ++i)
        out << v[i] + 1 << " ";
    out << "\n";
}

void back(std::vector<int> &comb, int N, int pos, std::ofstream &out)
{
    if (static_cast<std::size_t>(pos) == comb.size()) {
        printComb(comb, out);
        return;
    }

    for (auto i = comb[pos - 1] + 1; i < N; ++i) {
        comb[pos] = i;
        back(comb, N, pos + 1, out);
    }
}

void genComb(int N, int K, std::ofstream &out)
{
    std::vector<int> v(K + 1, -1);
    back(v, N, 1, out);
}

int main()
{
    std::ifstream fin("combinari.in");
    std::ofstream fout("combinari.out");

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

    genComb(N, K, fout);
    fout.close();

    return 0;
}