Cod sursa(job #1280564)

Utilizator delia_99Delia Draghici delia_99 Data 2 decembrie 2014 09:37:47
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <cstdio>

using namespace std;
int n,i,a[105],sol[105];

bool ok(int k)
{
    bool x;
    x=true;
    int j;
    for(j=1; j<=k-1; ++j)
        if(sol[j]==sol[k])
        {
            x=false;
            break;

        }
    return x;
}

void afis()
{
    for(i=1; i<=n; ++i)
        printf("%d ",a[sol[i]]);
    printf("\n");

}
void back(int k)
{
    int i;
    if(k>n)
        afis();
    else
    {
        for(i=1; i<=n; ++i)
        {
            sol[k]=i;
            if(ok(k))
                back(k+1);
        }
    }
    return;
}
int main()
{
    freopen("permutari.in","r",stdin);
    freopen("permutari.out","w",stdout);
    scanf("%d\n",&n);
    for(i=1; i<=n; ++i)
        scanf("%d ",&a[i]);
    back(1);
    return 0;
}