Pagini recente » Cod sursa (job #1121018) | Monitorul de evaluare | Cod sursa (job #1056875) | Cod sursa (job #2271120) | Cod sursa (job #596531)
Cod sursa(job #596531)
#include <stdio.h>
#define true 1
#define false 0
#define MAX_N 20
FILE* in;
FILE* out;
int k, n, s[MAX_N];
void back(int pos)
{
int i;
if (pos == k)
{
for (i = 0; i < k; i++) fprintf(out, "%d ", s[i]);
fprintf(out, "\n");
} else
{
s[pos] = 0;
while (s[pos]++ < (n - k + pos + 1))
{
int i;
int valid;
valid = true;
for (i = 0; i < pos; i++) {
if (s[pos] <= s[i]) {
valid = false;
break;
}
}
if (valid) back(pos+1);
}
}
}
int main() {
in = fopen("combinari.in", "rt");
out = fopen("combinari.out", "wt");
fscanf(in, "%d %d", &n, &k);
back(0);
return 0;
}