Pagini recente » Cod sursa (job #12724) | mere | Cod sursa (job #996134) | Cod sursa (job #2308007) | Cod sursa (job #1527821)
#include <stdio.h>
#include <stdlib.h>
FILE *fin, *fout;
int v[19],N,K;
int isValid(int pas) {
int i;
for(i=1;i<pas;i++) {
if(v[i] == v[pas] || v[i] > v[pas]) {
return 0;
}
}
return 1;
}
void backtrack(int pas) {
if(pas == K+1) {
afisare();
} else {
int i;
for(i=1;i<=N;i++) {
v[pas] = i;
if(isValid(pas)) {
backtrack(pas+1);
}
}
}
}
void afisare() {
int i;
for(i=1;i<=K;i++) {
fprintf(fout,"%d ",v[i]);
}
fprintf(fout,"\n");
}
int main(void) {
fin = fopen("combinari.in","r");
fout = fopen("combinari.out","w");
fscanf(fin,"%d%d",&N,&K);
backtrack(1);
return 0;
}