Cod sursa(job #1289344)

Utilizator ArmandNMArmand Nicolicioiu ArmandNM Data 9 decembrie 2014 20:11:09
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

const int NMAX = 20;

using namespace std;

ifstream f("combinari.in");
ofstream g("combinari.out");

int N,K,sol[NMAX];
bool used[NMAX];

void afisare()
{
    for (int i = 1; i <= K; ++i)
    {
        g << sol[i] << " ";
    }
    g << '\n';
}

void backtrack(int k)
{
    if (k == K+1)
    {
        afisare();
        return;
    }

    for (int i = sol[k-1]+1; i <= N; ++i)
    {
        if (!used[i])
        {
            sol[k] = i;
            used[i] = true;
            backtrack(k+1);
            used[i] = false;
        }
    }
}

int main()
{
    f >> N >> K;
    backtrack(1);

    f.close();
    g.close();
    return 0;
}