Cod sursa(job #2869661)

Utilizator Milka69Anastase Luca George Milka69 Data 11 martie 2022 18:51:21
Problema Combinari Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.2 kb
#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();
}