Pagini recente » Cod sursa (job #289114) | Cod sursa (job #1345961) | Cod sursa (job #2283273) | Cod sursa (job #3158375) | Cod sursa (job #2869661)
#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 sorted()
{
int nr=0;
for(int i=1;i<k;++i)
if(x[i] < x[i+1])
nr++;
if(nr == n-2)
return true;
else
return false;
}
void backtracking(int s)
{
for(int i=1;i<=n;++i)
if(!frq[i])
{
frq[i] = 1;
x[s] = i;
if(s < n)
{
backtracking(s+1);
}
else if(sorted())
{
afisare();
}
frq[i] = 0;
}
}
///-----------------------------------------SOLUTION
void Solution()
{
backtracking(1);
sorted();
}
///-----------------------------------------MAIN
int main()
{
ReadInput();
Solution();
}