Cod sursa(job #1366803)

Utilizator Nitu.Catalin1998Ioan Florin Catalin Nitu Nitu.Catalin1998 Data 1 martie 2015 13:52:42
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#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;
}