Pagini recente » Monitorul de evaluare | Cod sursa (job #995663) | Cod sursa (job #1362261) | Cod sursa (job #968605) | Cod sursa (job #2138392)
# include <stdio.h>
int N, K;
int simboluri[18];
FILE *fin = fopen("combinari.in", "r");
FILE *fout = fopen("combinari.out", "w");
void printSolution(int solution[]) {
for (int i = 0; i < K; i++)
fprintf(fout, "%d ", solution[i]);
fprintf(fout, "\n");
}
void combinari(bool used[], int solution[], int level) {
if (level >= K) {
printSolution(solution);
return;
}
for (int i = 0; i < N; i++) {
if (!used[i]) {
used[i] = true;
solution[level] = simboluri[i];
if (solution[level] > solution[level - 1])
combinari(used, solution, level + 1);
used[i] = false;
}
}
return;
}
int main(void) {
fscanf(fin, "%d%d", &N, &K);
fclose(fin);
int solution[18];
bool used[18];
for (int i = 0; i < N; i++) {
simboluri[i] = i + 1;
solution[i] = 0;
used[i] = false;
}
combinari(used, solution, 0);
fclose(fout);
}