Cod sursa(job #1278966)

Utilizator bciobanuBogdan Ciobanu bciobanu Data 29 noiembrie 2014 16:40:06
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
/*
 k       n!         n - k + 1      k - 1
C  = ---------- = ------------- * C
 n   k!(n - k)!         k          n
*/
#include <cstdio>

#define IN "combinari.in"
#define OUT "combinari.out"
#define MAX 20

using namespace std;

FILE *in = fopen(IN, "r");
FILE *out = fopen(OUT, "w");
int N, M;
int st[MAX];
/*
inline int nrcomb()
{
    int TC = 1, TA = 1, i;
    for(i = 1; i <= M; ++i)
    {
        TC = (TA * (N - i + 1)) / i;
        TA = TC;
    }
    return TC;
}
*/
void print()
{
    for(int i = 1; i <= M; ++i)
        fprintf(out, "%d ", st[i]);
    fputc('\n', out);
}
void Comb(int k)
{
    if(k > M)
        print();
    else
    {
        for(int i = st[k - 1] + 1; i <= N - M + k; ++i)
        {
            st[k] = i;
            Comb(k + 1); 
        }
    }
}
int main()
{
    fscanf(in, "%d%d", &N, &M);
    Comb(1);
    return 0;
}