Cod sursa(job #1673039)

Utilizator RobertSSamoilescu Robert RobertS Data 3 aprilie 2016 13:25:34
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <vector>
#include <string.h>


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


void back_tracking(int N, int K, int last, bool *viz, std::vector<int> v) {

    if (v.size() == (unsigned int)K) {
        for (size_t i = 0; i < K; i++)
            fout << v[i] << " ";

        fout << '\n';
        return;
    }

    for (int i = last + 1; i <= N; i++) {
            if (!viz[i]) {
                viz[i] = true;
                v.push_back(i);
                back_tracking(N, K, i, viz, v);
                viz[i] = false;
                v.pop_back();
            }
    }


}


int main() {

    int N, K;
    fin >> N >> K;

    bool viz[N + 1];
    memset(viz, false, sizeof(viz));

    std::vector<int> v;
    back_tracking(N, K, 0, viz, v);

    return 0;
}