sâmbătă, 3 noiembrie 2012

Problema 19 (nu e rezolvata in clasa,oricum e o idee)

n camile sunt asezate in sir indian. Sa se afiseze toate posibilitatile de rearanjare a acestora astfel incat o camila sa aiba in fata ei o camila diferita de cea din configuratia initiala.


#include<iostream>
using namespace std;
int n,x[10],nrsol;

int afisare()
{int i;
nrsol++;
for(i=1;i<=n;i++)
    cout<<x[i]<<" ";
cout<<endl;
}

int verif(int i)
{int j;
for(j=1;j<i;j++)
    if(x[j]==x[i] || x[i]-x[i-1]==1 && i>1)
        return 0;
return 1;
}

void back(int i)
{int j;
for(j=1;j<=n;j++)
{x[i]=j;
if(verif(i))
    if(i==n)
        afisare();
    else back(i+1);
}
}

int main()
{int i;
cin>>n;
back(1);
cout<<endl<<"Nr. sol= "<<nrsol;
}

Niciun comentariu:

Trimiteți un comentariu