Pagini recente » Cod sursa (job #418560) | Cod sursa (job #1657884) | Cod sursa (job #869488) | Cod sursa (job #834630) | Cod sursa (job #1278966)
/*
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;
}