Cod sursa(job #1649261)

Utilizator alexburdescuBurdescu Alexandru alexburdescu Data 11 martie 2016 13:02:03
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.23 kb
#include<iostream>
#include<fstream>
using namespace std;
int st[20],n,i,j,as,ev,k,com;
ifstream fin("combinari.in");
ofstream fout("combinari.out");
void initiere()
{
    st[i]=st[i-1];
}
int succesor()
{
    if(st[i]<n)
    {
        st[i]++;
        return 1;
    }
    return 0;
}
int valid ()
{
    if(i<=com)
    {
        return 1;
    }
    return 0;
}
int solutie()
{
    if(i<com)
    {
        return 0;
    }
    return 1;
}
void tipar()
{
    for(j=1;j<=i;j++)
    {
        fout<<st[j]<<" ";
    }
    fout<<"\n";
}
int main ()
{
    fin>>n;
    fin>>com;
    st[0]=0;
    i=1;
    initiere();
    while(i>0)
    {
        do
        {
            as=succesor();
            ev=valid();
        }
        while(as==1 && ev==0);
            if(as)
            {
                if(solutie())
                {
                    tipar();
                    i++;
                    initiere();
                }
                else
                {
                    i++;
                    initiere();
                }
            }
            else
            {
                i--;
            }
    }
    fin.close();
    fout.close();
    return 0;
}