Cod sursa(job #2028068)

Utilizator calinfloreaCalin Florea calinflorea Data 27 septembrie 2017 09:10:08
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("combinari.in");
ofstream fout("combinari.out");
int n, k;
int a[18];
int st[18];

void Afisare()
{
    int i;

    for(i = 1; i <= k; i++)
        fout << st[i] << " ";
    fout << "\n";
}

inline bool Valid(int top)
{
    int i;

    for(i = 1; i < top; i++)
        if(st[top] == st[i])
            return 0;
    return 1;
}
void Back()
{
    int cand, top = 1;
    st[top] = 0;

    while(top > 0)
    {
        cand = 0;
        while(cand == 0 && st[top] < n)
        {
            st[top]++;
            cand = Valid(top);
        }

        if(cand == 0)
            top--;
        else if(top == k)
            Afisare();
        else
        {
            top++;
            st[top] = st[top - 1];
        }
    }
}
int main()
{
    fin >> n >> k;
    Back();
    return 0;
}