Cod sursa(job #259845)

Utilizator amargineanmarginean alexandru amarginean Data 15 februarie 2009 22:41:24
Problema Combinari Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <stdio.h>   
int n,m,x[20];   
void init(int k)   
    {   
    x[k]=0;   
    }   
int succ(int k)   
    {   
    if (x[k]<n)   
        {   
        x[k]++;   
        return 1;   
        }   
    else return 0;   
    }   
int valid(int k)   
    {   
    for (int i=1;i<k;i++)   
        if (x[k]<=x[i]) return 0;   
    return 1;   
    }   
int sol(int k)   
    {   
    return k==m+1;   
    }   
void afis()   
    {   
    for (int i=1;i<=m;i++)   
        printf("%d ",x[i]);   
    printf("\n");   
    }   
void back(int k)   
    {   
    if (sol(k)) afis();   
    else {   
        init(k);   
        while (succ(k))   
            if (valid(k)) back(k+1);   
        }   
    }   
int main()   
{   
freopen("combinari.in","r",stdin);   
freopen("combinari.out","w",stdout);   
scanf("%d %d",&n,&m);   
back(1);   
return 0;   
}