Cod sursa(job #1017688)

Utilizator PlatonPlaton Vlad Platon Data 28 octombrie 2013 09:24:54
Problema Combinari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#define m 1000
using namespace std;

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

int s[m];

void print(int k)
{
    for(int i=0;i<k;i++)
    {
        g<<s[i]+1<<" ";
    }g<<endl;
}

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;
    f>>n>>k;

    combinari(n,k);

    f.close();
    g.close();
    return 0;
}