Cod sursa(job #1160085)

Utilizator TimitocArdelean Andrei Timotei Timitoc Data 30 martie 2014 11:29:19
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <cstdio>

using namespace std;

int n, k, sol[20], viz[20];

void afisare()
{
    for(int i=1; i<=k; i++)
        printf("%d ", sol[i]);
    printf("\n");
}

void bt(int poz=1)
{
    if(poz == k+1){
        afisare();
        return;
    }
    for(int i=sol[poz-1]+1; i<=n; i++){
        if(viz[i]==0){
            viz[i] = 1;
            sol[poz] = i;
            bt(poz+1);
            viz[i] = 0;
        }
    }
}

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

    scanf("%d", &n);
    for(int i=1; i<=n; i++){
        k = i;
        bt(1);
        for(int j=0; j<20; j++)
            sol[j] = viz[j] = 0;
    }
    return 0;
}