Pagini recente » Cod sursa (job #2723735) | Istoria paginii runda/preoji_valoros | Cod sursa (job #1359063) | template/despre-infoarena | Cod sursa (job #1366809)
#include <iostream>
#include <fstream>
using namespace std;
int a[20], n, m, nrsol;
ifstream fin("combinari.in");
ofstream fout("combinari.out");
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()
{
fin >> n >> m;
backtracking(1);
cout << nrsol;
return 0;
}