Cod sursa(job #1829535)

Utilizator AndreeazelkoZelko Andreea Andreeazelko Data 15 decembrie 2016 10:01:55
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>

using namespace std;

const int NMAX=18;
int n, nr=0, k;
int sol[NMAX];
bool ap[NMAX];


void print(int sol[]){
    for(int i=0; i<k; i++){
        cout<<sol[i]<<" ";
    }
    cout<<"\n";
    return;
}

void bkt (int pos){
    if(pos>=k){
        print(sol);
        nr++;
        return;
    }
    for(int val=1; val<=n; ++val){
        if(ap[val])
            continue;
        if(sol[pos-1]>val)
            continue;
        sol[pos]=val;
        ap[val]=true;
        bkt(pos+1);
        sol[pos]=0;
        ap[val]=false;
    }
}


int main()
{
    cin>>n>>k;
    bkt(0);
    cout<<nr;
    return 0;
}