Cod sursa(job #2003843)

Utilizator PetrescuAlexandru Petrescu Petrescu Data 24 iulie 2017 09:03:59
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#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;
}