Cod sursa(job #1413458)

Utilizator crysstyanIacob Paul Cristian crysstyan Data 1 aprilie 2015 21:26:35
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#define NMAX 20

using namespace std;

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

int i, n, k, v[NMAX];

void afisare()
{
    for (int i=1; i<=k; ++i)
        g<<v[i]<<" ";
    g<<'\n';
}

bool ok()
{
    for (int i=1; i<=k-1; ++i)
        if (v[i]==v[k]) return 0;
    return 1;
}

void backtracking()
{
    k=1;
    v[1]=0;
    while (k)
    {
        bool gasit=0;
        while (!gasit && v[k]<n)
        {
            v[k]++;
            if (ok()) gasit=1;
        }

        if (!gasit) k--;
        else
            if (k<=n)
            {
                afisare();
                if (k<n)
                    k++, v[k]=v[k-1];
            }
    }
}

int main()
{
    f>>n;
    backtracking();
    return 0;
}