Cod sursa(job #260239)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 16 februarie 2009 20:35:42
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.69 kb
#include<stdio.h>
#include<math.h>
int n,k,ev,as,m,s[100],sol;
    void init()
    {
         s[k]=0;
    }

    int succesor()
    {
        if(s[k]<n)
        {
                  s[k]=s[k]+1;
                  return 1;
        }
        else return 0;
    }

    int valid()
    {
        for(int i=1;i<k;i++)
                if(s[k]==s[i])
                              return 0;
        return 1;
    }

    int solutie()
    {
        if(k==m)
                return 1;
                else return 0;
    }

    void tipar()
    {
         for(int i=1;i<=m;i++)
                 printf("%d ",s[i]);
         printf("\n");
    }

    void bt()
    {
         k=1;
         init();
         while(k>0)           
         {
                              as=1;ev=0;
                              while(as && !ev)
                              {
                                as=succesor();
                                if(as)ev=valid();
                              }
                              if(as)
                              if(solutie())
                              {
                                           sol++;
                                           tipar();
                              }
                              else
                              {
                                           k++;
                                           init();
                              }
                              else k--;
         }
    }                      

int main()
{
     freopen("combinari.in","r",stdin);
     freopen("combinari.out","w",stdout);
     scanf("%d%d",&n,&m);
     bt();
     return 0;
}