Cod sursa(job #2138259)

Utilizator sulzandreiandrei sulzandrei Data 21 februarie 2018 15:00:49
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.16 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("combinari.in");
ofstream out("combinari.out");
bool as,ev; int n,k,p;
void valid(int k, int v[],bool &ev)
{    ev = true;
    if ( k> 0 && v[k-1] >= v[k])
        ev = false;
}
void init( int k, int v[])
{
    v[k] = 0;
}
void suc(int k, int v[], bool &as)
{
    if( v[k]< n)
    {
        v[k]++;
        as = true;
    }
    else
        as = false;

}
void tipar(int k, int v[])
{
    int i;
    for(i = 0 ; i < p    ; i ++)
        out << v[i] <<" ";
    out<<"\n";
}
bool solutie(int k)
{
    if(k == p-1)
        return true;
    return false;
}
int main()
{
    in >> n >> p;
    int v[n];
    k = 0;
    init(k,v);
    while( k>-1 )
    {
        do
        {
            suc(k,v,as);
            if(as)
                valid(k,v,ev);
        }
        while( as  && !(as && ev));
        if (as)
            if(solutie(k))
                tipar(k,v);
            else
            {
                k++;
                init(k,v);
            }
        else
        {
            init(k,v);
            k--;
        }
    }
    return 0;
}