Cod sursa(job #1146964)

Utilizator ellena.emmaPopescu Elena-Ema ellena.emma Data 19 martie 2014 14:26:32
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>

using namespace std;
int st[100],as,ev,k,n,m;
void init(int st[100], int k)
{
    st[k]=0;
}
int succesor(int st[100], int k)
{
    if(st[k]<n)
    {
        st[k]++;
        return 1;
    }
    else return 0;
}
int valid(int st[100], int k)
{
    int ok=1,i;
    for(i=1;i<=k-1;i++)
     if(st[k]<=st[i]) ok=0;
     return ok;
}
int sol( int k)
{

    int ok=0;
    if(k==m) ok=1;
    return ok;
}
void tipar( int st[100], int k)
{
    int i;
    for(i=1;i<=m;i++)
    cout<<st[i]<<" ";
    cout<<endl;
}
void back( int st[100], int &k)
{
    k=1;
    init(st,k);
    while(k>=1)
    {
        do { as=succesor(st,k);
        if(as)
        ev=valid(st,k);
        }
    while((as)&&!(as&&ev));
    if(as)
      if(sol(k))
      tipar(st,k);
      else {k++; init(st,k);
                }
    else k--;
}
}
int main()
{cin>>n;
cin>>m;
k=1;
back(st,k);
return 0;

}