Se citesc n cifre.Sa se afiseze toate nr formate cu acestea astfel incat sa nu existe doua cifre pare alaturate.

#include<iostream.h>
#include<conio.h>

int n,st[10],k,p;
int v[10];

int valid(int p)
{
if((p==1) && v[st[p]]==0) return 0;
if((p>1) && (v[st[p]]%2==0 && v[st[p-1]]%2==0)) return 0;

return 1;
}

int sol(int p)
{
return (n==p);
}

void tipar(int p)
{
for(int i=1;i<=p;i++)
cout<<v[st[i]];
cout<<endl;
}

void bkt(int p)
{

for(int val=1;val<=n;val++)
{st[p]=val;
if (valid(p))
if (sol(p)) tipar(p);
else bkt(p+1);
}}

void main()
{
int i;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
{cout<<"v["<<i<<"]=";cin>>v[i];}
bkt(1);
getch();
}