Cod sursa(job #2228401)

Utilizator andreisontea01Andrei Sontea andreisontea01 Data 3 august 2018 16:07:35
Problema Combinari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, k;
int v[20];
bool block[20];

void backtrack(int pos){
    if(pos == k + 1){
        bool ok = 1;
        for(int i = 1; i < k && ok; ++i)
            if(v[i] > v[i + 1])
                ok = 0;
        if(ok){
            for(int i = 1; i <= k; ++i)
                fout << v[i] << " ";
            fout << "\n";
        }
        return;
    }
    for(int i = pos; i <= n; ++i){
        if(!block[i]){
            v[pos] = i;
            block[i] = 1;
            backtrack(pos + 1);
            v[pos] = 0;
            block[i] = 0;
        }
    }
    return;
}

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