Pagini recente » Cod sursa (job #1314002) | Cod sursa (job #1584062) | Cod sursa (job #1660063) | Cod sursa (job #2821418) | Cod sursa (job #2714508)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream in("combinari.in");
ofstream out("combinari.out");
int n, m;
int x[20];
void afisare(int k)
{
for(int i = 1; i <= k; ++ i)
out << x[i] << " ";
out << '\n';
}
bool valid(int k)
{
for(int i = 1; i < k; ++ i)
if(x[k] <= x[i]) return 0;
return 1;
}
void backtrack(int k)
{
for(int i = 1; i <= n; ++ i)
{
x[k] = i;
if(valid(k))
if(k == m) afisare(m);
else backtrack(k + 1);
}
}
int main()
{
in >> n >> m;
backtrack(1);
return 0;
}