Cod sursa(job #1132810)

Utilizator marta_diannaFII Filimon Marta Diana marta_dianna Data 3 martie 2014 22:17:19
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include<fstream>

using namespace std;

int n, pz, i, x[20];

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

bool valid(int k)
{
    int i;

    for (i=1; i<k; ++i)
        if (x[i]==x[k]) return 0;

    return 1;
}

void Scrie()
{
    int i;
    g<<x[1];
    for (i=2; i<=n; ++i)
        g<<" "<<x[i];
    g<<"\n";
}

int main()
{
    f>>n;

    pz=1;
    while (pz>0)
    {
        if (pz==n+1)
        {
            Scrie();
            --pz;
        }
        else
        {
            if (x[pz]==n)
            {
                x[pz]=0; --pz;
            }
            else
            {
                i=x[pz]+1;
                while (i!=n+1)
                {
                    x[pz]=i;
                    if (valid(pz)) break;
                    ++i;
                }
                if (i==n+1)
                {
                    x[pz]=0;
                    --pz;
                }
                else ++pz;
            }
        }
    }

    return 0;
}