Cod sursa(job #2313983)

Utilizator prd11Radu Popa prd11 Data 7 ianuarie 2019 18:24:22
Problema Combinari Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("combinari.in");
ofstream fout("combinari.out");

    int n, p, k, i, as, ev;
    int stiva[20];

void succesor()
{   if (k>1 && stiva[k]==0) stiva[k]+=stiva[k-1];
    else if (stiva[k]<n-p+k)
       {stiva[k]++;
        as=1;}
    else as=0;
}

void valid()
{   ev=1;
    if (k>1 && stiva[k]<=stiva[k-1])  ev=0;
}
void back()
{
    k=1;
    stiva[k]=0;
    while (k>0)
    {
        do {succesor ();
            if (as);
                valid ();}
        while (as && ev==0);

        if (as)
            if (k==p)
            {
                for (i=1; i<=p; i++)
                    fout<<stiva[i]<<" ";
                    fout<<endl;
            }
            else stiva[++k]=0;
       else k--;
    }
}


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