Cod sursa(job #1372883)

Utilizator felipeGFilipGherman felipeG Data 4 martie 2015 15:42:28
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>
using namespace std;
FILE *f=fopen("combinari.in","r");
FILE *g=fopen("combinari.out","w");
int n,k,i,niv,v[20];
void print()
{
    for(int i=1;i<=k;++i)
      fprintf(g,"%d ",v[i]);
    fprintf(g,"\n");
}
bool valid(int niv)
{
    for(int i=1;i<niv;++i)
      if(v[i]==v[niv])
       return false;
    return true;
}
void backt(int niv)
{
    for(int i=v[niv-1]+1;i<=n;++i)
    {
        v[niv]=i;
        if(valid(niv))
        {
         if(niv==k)
          print();
         else
          backt(niv+1);
        }
    }
}
int main()
{
    fscanf(f,"%d%d",&n,&k);
    backt(1);
    return 0;
}