Cod sursa(job #2216783)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 27 iunie 2018 21:49:31
Problema Combinari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
using namespace std;
#include <fstream>
unsigned n,m,st[10];
ofstream g("combinari.out");
unsigned succesor (unsigned k)
{
    if(st[k]<n)
        {
            st[k]++;
            return 1;
        }
    return 0;
}

unsigned valid (unsigned k)
{
    unsigned i;
    for(i=1;i<k;i++)
        if(st[i]==st[k])
            return 0;
    if(k>1&&st[k]<st[k-1])
        return 0;
    return 1;
}

unsigned solutie (unsigned k)
    {return k==m;}

void tipar ()
{
    unsigned i;
    for(i=1;i<=m;i++)
        g<<st[i]<<" ";
    g<<"\n";
}

void bt(unsigned k)
{
    st[k]=0;
    while (succesor (k))
        if(valid (k))
            {if(solutie (k))
                tipar();
    else bt(k+1);}}


int main(){
    ifstream f("combinari.in");
f>>n>>m;
    bt(1);
f.close();
g.close();
    return 0;}