Cod sursa(job #2866188)

Utilizator lolismekAlex Jerpelea lolismek Data 9 martie 2022 13:46:18
Problema Combinari Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <bitset>

using namespace std;

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

const int N = 18;
int v[N + 1], n, k;
bitset <N + 1> viz;

bool ok(){
    for(int i = 2; i <= k; i++)
        if(v[i] <= v[i - 1]) return false;
    return true;
}

void afisare(){
    if(ok()){
        for(int i = 1; i <= k; i++) fout << v[i] << ' ';
        fout << '\n';
    }
}

void bkt(int poz){
    if(poz == k + 1){
        afisare();
        return;
    }
    for(int i = 1; i <= n; i++)
        if(!viz[i])
            v[poz] = i, viz[i] = 1, bkt(poz + 1), viz[i] = 0;
}

int main(){
    fin >> n >> k;
    bkt(1);
    return 0;
}