Cod sursa(job #735666)

Utilizator PatrunjeluMarginean Bogdan Alexandru Patrunjelu Data 16 aprilie 2012 22:51:59
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <stdio.h>
using namespace std;

short n;
short sol[8];

bool evalid(short pas, short val)
{
    for (int i = 0; i < pas; ++i)
    {
        if (sol[i] == val)
           return false;
    }
    return true;
}

void scriesolutie()
{
    for (int i = 0; i < n-1; ++i)
    {
        printf("%hd ", sol[i]);
    }
    printf("%hd\n", sol[n-1]);
}

void back(short pas)
{
    for (int i = 1; i <= n; ++i)
    {
        if (evalid(pas, i))
        {
            sol[pas] = i;
            if (pas == n-1)
               scriesolutie();
            else
               back(pas+1);
        }
    }
}

int main()
{
    freopen("permutari.in", "r", stdin);
    freopen("permutari.out", "w", stdout);
    scanf("%hd", &n);
    back(0);
    return 0;
}