Cod sursa(job #3361145)

Utilizator iulia_toderica16Iulia Toderica iulia_toderica16 Data 21 iulie 2026 11:49:52
Problema Combinari Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, m;
bool used[18];
int sol[18];

bool e_sol(int k){

    bool cresc=true;
    for(int i=1; i<m; i++)
        if(sol[i]>sol[i+1])
            cresc=false;

    if(k==m+1 && cresc==true)
        return true;
    return false;
}

void afis(){

    for(int i=1; i<=m; i++)
        cout<<sol[i]<<" ";
    cout<<'\n';
}

bool valid(int nr){

    if(used[nr]==true)
        return false;
    return true;
}

void backtrack(int k){

    if(e_sol(k)){

        afis();
        return;
    }
    for(int i=1; i<=n; i++){

        if(valid(i)){

            used[i]=true;
            sol[k]=i;
            backtrack(k+1);
            used[i]=false;
        }
    }
}

int main()
{
    fin>>n>>m;
    backtrack(1);

    return 0;
}