Cod sursa(job #1017705)

Utilizator varga13VarGaz13 varga13 Data 28 octombrie 2013 09:47:53
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <stdio.h>
#define m 1000
using namespace std;

int s[m];

void print(int k)
{
    for(int i=0;i<k;i++)
    {
        printf("%d ", s[i]+1);
    }printf("\n");
}

bool ok(int p)
{
    for(int i=0;i<p;++i)
    {
        if(s[p]<=s[i])
            return false;
    }
    return true;
}

void combinari(int n,int k)
{int p=1;
    for(;p>=0;)
    {
        if(s[p]<n)
        {
            ++s[p];
            if(ok(p))
            {
                if(p==k)
                {
                    print(k);
                    p--;
                }

                else
                {
                    ++p;
                    s[p]=0;
                }
            }
        }
        else
        {
            --p;
        }
    }

}

int main()
{int n,k;
    freopen("combinari.in","r",stdin);
    freopen("combinari.out","w",stdout);
    scanf("%i%i",&n, &k);

    combinari(n,k);

    return 0;
}