Cod sursa(job #1901730)

Utilizator danutmafteiMaftei Danut danutmaftei Data 4 martie 2017 10:52:59
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#define MAX 1001
#include <cmath>

using namespace std;
int v[MAX],n;

bool valid(int k)
{
    int i;
    for(i=1;i<=k-1;++i)
        if(v[i]==v[k])return false;
        if(k==1)return true;
    if(k>1 && abs(v[k]-v[k-1])>=2)return true;
    else return false;
}

bool solutie(int k)
{
    if(n==k)return true;
    return false;
}

void afisare(int k){
    int i;
    for(i=1;i<=k;++i)
        cout<<v[i]<<" ";
    cout<<endl;
}
void BK(int k)
{
    int i;
    for(i=1;i<=n;++i)
    {v[k]=i;
    if(valid(k))
        if(solutie(k))afisare(k);
        else BK(k+1);

    }
}
int main()
{
    cin>>n;
    BK(1);
    return 0;
}