Pagini recente » Cod sursa (job #2132535) | Cod sursa (job #3202342) | Cod sursa (job #1729967) | Cod sursa (job #2596010) | Cod sursa (job #1729513)
#include<stdio.h>
int stiva[17] = {0}, n;
FILE *inputFile = fopen("submultimi.in","r"), *outputFile = fopen("submultimi.out", "w");
void afiseazaSubmultime(int nivel)
{
for(int i = 1; i <= nivel; i++)
fprintf(outputFile, "%d ", stiva[i]);
fprintf(outputFile, "\n");
}
bool valid(int nr, int nivel)
{
for(int i = 1; i <= nivel; i++)
if(nr == stiva[i]) return false;
return true;
}
void BKT(int nivel, int nr)
{
for(int i = nr; i <= n; i++)
if(valid(i,nivel-1) == true)
{
stiva[nivel] = i;
afiseazaSubmultime(nivel);
BKT(nivel+1, i);
}
}
int main()
{
fscanf(inputFile, "%d", &n);
BKT(1, 1);
return 0;
}