Pagini recente » Cod sursa (job #2608652) | Cod sursa (job #357339) | Monitorul de evaluare | Cod sursa (job #983197) | Cod sursa (job #2106091)
#include <iostream>
#include <fstream>
#define dMAX 20
using namespace std;
unsigned short int n, m;
unsigned short int x[dMAX];
ifstream fin("combinari.in");
ofstream fout("combinari.out");
bool Candidate(unsigned short int k) {
for (unsigned short int i = 1; i < k; i++) {
if (x[i] >= x[k]) return false;
}
return true;
}
void BackTrack(unsigned short int k) {
unsigned short int i, j;
for (i = 1; i <= n; i++) {
x[k] = i;
if (Candidate(k)) {
if (k == m) {
for (j = 1; j <= k; j++) {
fout << x[j] << " ";
}
fout << "\n";
} else {
BackTrack(k + 1);
}
}
}
}
int main()
{
fin >> n >> m;
BackTrack(1);
return 0;
}