Cod sursa(job #1974652)

Utilizator papinub2Papa Valentin papinub2 Data 28 aprilie 2017 12:42:57
Problema Submultimi Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
# include <fstream>

using namespace std;

ifstream in("submultimi.in");
ofstream out("submultimi.out");

int n, p;
int v[30];

int verifica (int k)
{
    for (int i = 1; i <= k - 1; i++)
        if (v[i] == v[k] || v[i] > v[i+1])
            return 0;

    return 1;
}

void backtracking (int k)
{
    if (k == p + 1)
    {
        for (int i = 1; i <= p; i++)
            out << v[i] << ' ';

        out << '\n';

        return;
    }

    for (int i = 1; i <= n; i++)
    {
        v[k] = i;

        if (verifica(k)) backtracking(k + 1);
    }
}

int main()
{
    in >> n;

    for (int i = 1; i <= n; i++)
    {
        p = i;
        backtracking(1);
    }

    return 0;
}