Cod sursa(job #1057986)

Utilizator patratzelAlex Alex patratzel Data 14 decembrie 2013 21:59:38
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.19 kb
#include <fstream>
using namespace std;

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

unsigned n,st[19],k,i,p;

void init(unsigned k)
    {
        st[k]=0;
    }

bool succesor(unsigned k)
    {
        if(st[k]<n)
            {
                st[k]++;
                return true;
            }
        return false;
    }

bool valid(unsigned k)
    {
        for(i=1;i<k;i++)
            if(st[i]>=st[k])
                return false;
        return true;
    }

bool solutie(unsigned k)
    {
        return (k==p);
    }

void afiseaza()
    {
        for(i=1;i<=p;i++)
            g<<st[i]<<" ";
        g<<"\n";
    }

void back()
    {
        k=1;
        init(k);
        while(k>0)
            {
                while(succesor(k))
                    if(valid(k))
                        if(solutie(k))
                            afiseaza();
                        else
                            {
                                k++;
                                init(k);
                            }
                k--;
            }
    }

int main()
    {
        f>>n>>p;
        back();
        return 0;
    }