Cod sursa(job #2152323)

Utilizator CammieCamelia Lazar Cammie Data 5 martie 2018 13:55:27
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>

#define MAXN 24

using namespace std;

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

int N, K, x[MAXN], fr[MAXN];

inline void Read() {
    fin >> N >> K;
}

inline int cond(int k) {
    if (fr[x[k]])
        return 0;
    return 1;
}

inline void Afisare() {
    for (int i = 1; i <= K; i++)
        fout << x[i] << " ";
    fout << "\n";
}

inline void bkt() {
    int k = 1;
    while (k) {
        if (x[k] < N) {
            x[k]++;

            if (cond(k)) {
                if (k == K)
                    Afisare();
                else if (k < K) {
                    fr[x[k]]++;
                    k++;
                    x[k] = x[k - 1];
                }
            }
        }
        else {
            k--;
            fr[x[k]] = 0;
        }
    }
}

int main () {
    Read();
    bkt();

    fin.close(); fout.close(); return 0;
}