Cod sursa(job #1132319)

Utilizator alexstanseseStanese Alex alexstansese Data 2 martie 2014 23:02:49
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <fstream>

using namespace std;

int n,k,altul, sol[9],i;

int valid()
{
    int j;
    for (j=1;j<k;j++)
        if (sol[j] == sol[k])
            return 0;
    return 1;
}

int main()
{
    FILE *fin = fopen("permutari.in","r");
    FILE *fout = fopen ("permutari.out","w");
    fscanf(fin, "%d", &n);
    k=1;
    while (k)
    {
        do
        {
            if (sol[k]<n)
            {
                sol[k]++;
                altul = 1;
            }
            else
                altul = 0;
        }
        while (altul && !valid());

        if (altul)
        {
            if (k==n)
            {
                 for (i=1;i<=k;i++)
                    fprintf(fout, "%d ", sol[i]);
                fprintf(fout, "\n");
            }

            else
            {
                k++;
                sol[k]=0;
            }
        }
        else
            k--;
    }
    fclose(fin);
    fclose(fout);
}