Cod sursa(job #1953852)

Utilizator Andrei501Clicinschi Andrei Andrei501 Data 5 aprilie 2017 08:01:40
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <cstdio>

using namespace std;

int v[19],u[19],n,k;

int valid (int p)
{
    int j;
    if (u[v[p]]==1)
    {
        return 0;
    }
    for (j=1; j<=n; j++)
    {
        if (u[j]==1&&j>v[p])
        {
            return 0;
        }
    }
    return 1;
}

void bkt (int p)
{
    int i;
    if (p==k+1)
    {
        for (i=1; i<=p-1; i++)
        {
            printf ("%d ",v[i]);
        }
        printf ("\n");
    }
    else
    {
        for (i=1; i<=n; i++)
        {
            v[p]=i;
            if (valid(p)==1)
            {
                u[i]=1;
                bkt(p+1);
                u[i]=0;
            }
        }
    }
}

int main()
{
    freopen ("combinari.in","r",stdin);
    freopen ("combinari.out","w",stdout);

    scanf ("%d %d",&n,&k);

    bkt(1);

    return 0;
}