Cod sursa(job #2313919)

Utilizator MatiPopa Mati Mati Data 7 ianuarie 2019 17:16:08
Problema Combinari Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("combinari.in");
ofstream fout("combinari.out");
int n,p,k,i,as,ev,st[19];
void succesor()
{
    if(st[k]<n)
    {
        as=1;
        st[k]++;
    }

    else as=0;
}

void valid()
{
    ev=1;

    for(i=1;i<k;i++)
        if(st[i]==st[k]) ev=0;

        if(k>1 && st[k]<st[k-1]) ev=0;
}

void back()
{
    k=1;
    st[k]=0;

    while(k>0) {

    succesor();
    if(as)
        valid();

    while(as && ev==0)
    {
        succesor();
        if(as)
            valid();
    }

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

        else st[++k]=0;
    }

    else k--; }
}
int main()
{
    fin>>n>>p;
    back();

    return 0;
}