Cod sursa(job #880584)

Utilizator bratiefanutBratie Fanut bratiefanut Data 16 februarie 2013 22:38:03
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<cstdio>
int a[100],b[100];

void back(int k,int len,int max)
{
     if(k-1 == max) //afisam solutia
     {
         for(int i = 1; i <= max;i++)
           printf("%d ",a[i]);
         printf("\n");
     }
     else
     {
         for(int  i = 1; i <= len; i++)
            if(!b[i] && a[k-1] < i)  //ne asiguram ca generam solutiile crescatoare si unice
           {
                 a[k] = i;
                 b[i] = 1; //o folosim
                 back(k+1,len,max); //trecem la pasul urmator
                 b[i] = 0;   //o eliberam
           }
     }
}

int main()
{
    freopen("combinari.in","r",stdin);
    freopen("combinari.out","w",stdout);
    int n,k;
    scanf("%d %d",&n,&k);
    back(1,n,k);
    fclose(stdin); fclose(stdout);
    return 0;
}