Cod sursa(job #2745487)

Utilizator mihaicrisanMihai Crisan mihaicrisan Data 26 aprilie 2021 16:36:53
Problema Combinari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 kb
#include <fstream>

using namespace std;

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

int n, k, m;
int x[20];

void afisare(){
    for (int i = 1; i <= m; i++)
        fout << x[i] << ' ';
    fout << '\n';
}

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

void Back (int k){
    for (int i = 1; i <= n; i++){
        x[k] = i;
        if (ok(k) == true){
            if (k == m)
                afisare();
            else
                Back(k + 1);
        }
    }
}

int main(){
    fin >> n >> m;
    Back(1);
    return 0;
}


/*
Subprogram BACK(k)
    Pentru fiecare element i din A[k] Execută
        x[k] ← i
        Dacă OK(k) Atunci
            Dacă Solutie(k) Atunci
                Afisare(k)
            Altfel
                BACK(k+1)
            SfărșitDacă
        SfărșitDacă
    SfarșitPentru
SfârșitSubprogram
*/