Cod sursa(job #1491786)

Utilizator andreitulusAndrei andreitulus Data 26 septembrie 2015 09:41:00
Problema Combinari Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include<stdio.h>
using namespace std;

int x[20], uz[20], n, k;


void verif()
{
    int i, sw = 1;

    for(i = 1; i < k && sw; i++)
        if(x[i] > x[i + 1])
            sw = 0;

    if(sw)
    {
        for(i = 1; i <= k; i++)
            printf("%d ",x[i]);

        printf("\n");
    }

}


void backt(int p)
{
    int i;

    if(p > k)
        verif();
    else
    {
        for(i = 1; i <= n; i++)
            if(uz[i] != 1)
            {
                x[p] = i;
                uz[i] = 1;
                backt(p + 1);
                uz[i] = 0;
            }
    }

}


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

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

    backt(1);

    fclose(stdin);
    fclose(stdout);

    return 0;
}