Cod sursa(job #1183338)

Utilizator AndreeaBaltaBalta Andreea Cristina AndreeaBalta Data 8 mai 2014 20:56:12
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include <cstdio>

using namespace std;

int v[20], n;

void init(int k)
{
    v[k] = 0;
}

bool amsuccesor(int k)
{
    if(v[k] < n)
    {
        v[k]++;
        return 1;
    }
    else
    {
        return 0;
    }
}

bool evalid(int k)
{
    for(int i = 1; i < k; i++)
    {
        if(v[k] == v[i])
            return 0;
    }
    return 1;
}
int main()
{
    FILE *in, *out;
    in = fopen("permutari.in", "r");
    out = fopen("permutari.out", "w");
    int k = 1, cnt = 0;
    fscanf(in, "%d", &n);
    init(k);
    while(k > 0)
    {
        if(amsuccesor(k))
        {
            if(evalid(k))
            {
                if(k == n)
                {
                    for(int i = 1; i<= n; i++)
                    {
                        cnt++;
                        fprintf(out, "%d ", v[i]);
                    }
                    fprintf(out, "\n");

                }
                else
                {
                    k++;
                    init(k);
                }
            }
        }
        else
            k--;
    }
    return 0;
}