Pagini recente » Cod sursa (job #907667) | Cod sursa (job #1123434) | Istoria paginii runda/tema_3/clasament | Istoria paginii runda/lot_2/clasament | Cod sursa (job #1366803)
#include <iostream>
using namespace std;
int a[20], n, m, nrsol;
void afisare()
{
for(int i = 1; i <= m; i++)
fout << a[i] << ' ';
fout << '\n';
}
bool valid(int k)
{
for(int i = 1; i < k; i++)
if(a[k] == a[i] or a[k] < a[i])
return false;
return true;
}
void backtracking(int k)
{
if(k == m + 1)
{
afisare();
nrsol++;
}
else
{
for(int i = 1; i <= n; i++)
{
a[k] = i;
if(valid(k) == true)
{
backtracking(k + 1);
}
}
}
}
int main()
{
ifstream fin("combinari.in");
ifstream fout("combinari.out");
fin >> n >> m;
backtracking(1);
cout << nrsol;
return 0;
}