Pagini recente » Monitorul de evaluare | Cod sursa (job #1970044) | Cod sursa (job #71617) | Cod sursa (job #1997551) | Cod sursa (job #2003843)
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#define MAX 16
using namespace std;
FILE *fin, *fout;
int v[MAX];
void afisare(int n)
{
int i;
for(i = 0; i < n; i++)fprintf(fout, "%d ", v[i]);
fprintf(fout, "\n");
}
bool verificare(int n)
{
int i;
for(i = 0; i < n; i++)if(v[n] <= v[i])return false;
return true;
}
void bkt(int n, int k, int poz)
{
int i;
if(poz == k)afisare(k);
else
{
for(i = poz + 1; i <= n; i++)
{
v[poz] = i;
if(verificare(poz) == true)bkt(n, k, poz + 1);
}
}
}
int main()
{
int n, k;
fin = fopen("submultimi.in", "r");
fout = fopen("submultimi.out", "w");
fscanf(fin, "%d", &n);
for(k = 1; k <= n; k++)bkt(n, k, 0);
fclose( fin );
fclose( fout );
return 0;
}