Pagini recente » Cod sursa (job #1735302) | Cod sursa (job #2448131) | Cod sursa (job #2245621) | Cod sursa (job #1275875) | Cod sursa (job #2869667)
#include <bits/stdc++.h>
using namespace std;
///-----------------------------------------FILES
ifstream f("combinari.in");
ofstream g("combinari.out");
///-----------------------------------------GLOBAL VARIABLES
#define NMAX 25
int n, k, frq[NMAX], x[NMAX];
///-----------------------------------------READING THE INPUT
void ReadInput()
{
f >> n >> k;
}
void afisare()
{
for(int i=1;i<=k;++i)
g << x[i] << ' ';
g << '\n';
}
bool ok(int k)
{
for(int i=1;i<k;++i)
if(x[i] == x[k])
return false;
if(k > 1)
if(x[k] <=x [k-1])
return false;
return true;
}
bool reach(int p)
{
return p == k;
}
void backtracking(int s)
{
for(int i=1;i<=n;++i)
{
x[s] = i;
if(ok(s))
if(reach(s))
afisare();
else
backtracking(s+1);
}
}
///-----------------------------------------SOLUTION
void Solution()
{
backtracking(1);
}
///-----------------------------------------MAIN
int main()
{
ReadInput();
Solution();
}