Cod sursa(job #1521559)

Utilizator TonisonIlle Antoniu Nicolae Tonison Data 10 noiembrie 2015 17:36:33
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>


using namespace std;

ifstream f("combinari.in");
ofstream g("combinari.out");
int p, n;
int v[20];
inline bool solutie(int k)
{
return ((k==p+1)?true:false );
}

void tipar(int k)
{
    for(int i=1; i<k; i++)
    {
        g<<v[i]<<" ";
    }
    g<<"\n";
}

void init(int k)
{
    v[k]=k-1;
}

bool succ(int k)
{
    if(v[k]<n)
    {
        v[k]++;
        return true;
    }
    else
        return false;
}

bool valid(int k)
{
    for(int i=1; i<k; i++)
    {
        if(v[i+1]<=v[i])
        {
            return false;
        }
    }
    return true;
}

void backtr(int k)
{
    if(solutie(k))
        tipar(k);
    else
    {
       init(k);
       while(succ(k))
       {
           if(valid(k))
                backtr(k+1);
       }
    }
}

int main()
{
    f>>n>>p;
    backtr(1);
    return 0;
}