Cod sursa(job #2022381)

Utilizator Alexandru_IulianAlexandru Iulian Alexandru_Iulian Data 16 septembrie 2017 14:18:35
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

int n, a[10];



bool valid(int k)
{
    int i;
    for(i=1;i<k;i++)
        if(a[i]==a[k]) return false;
    return true;
}


void afisare(int k)
{
    int i;
    for(i=1;i<=k;i++)
        printf("%d ", a[i]);
    printf("\n");
}

void backtrack(int k)
{
    int i;
    for(i=1;i<=n;i++)
    {
        a[k]=i;
        if(valid(k)){
            if(n==k)
            afisare(k);
            else
                backtrack(k+1);
    }
    }
}



int main()
{
    freopen ("permutari.in", "r", stdin);
    freopen ("permutari.out", "w", stdout);

    scanf("%d ", &n);
    backtrack(1);

    return 0;
}