Cod sursa(job #726225)

Utilizator codebreaker24Tivadar Ionut codebreaker24 Data 27 martie 2012 08:50:52
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
# include <iostream>
# include <fstream>
# define Nmax 18
# define Egal(a,b) ((a)==(b)?true:false)
using namespace std;

ifstream f ("combinari.in");
ofstream g ("combinari.out");

int n,k;
int st[Nmax];

void citire();
bool valid (int m);
void afisare();
void bktr (int niv);

void citire ()
{
  f >> n >> k;
  f.close ();
}

bool valid  (int m)
{
  for(int j=1; j<m; j++)
  {
    if (st[j] >= st[m])
    return false;
  }
  return true;
}

void afisare ()
{
  for(int j=1; j<=k; j++)
  {
    g << st[j] << ' ';
  }
  g << '\n';
}
void bktr (int niv)
{
  for(int i=1; i<=n; i++)
  {
    st[niv] = i;
    if (valid(niv))
    {
      if (Egal(niv,k))
        afisare ();
      else
        bktr(niv+1);
    }
  }
}

int main ()
{
  citire ();
  bktr(1);
  g.close();
  return 0;

}