Scrieti un program care afiseaza pe ecran toate secventele de n litere (n numar natural par citit de la tastatura) din multimea {A,R,G,V), secvente care se pot construi respectand urmatoarele reguli: nu plasam doua litere identice una langa alta;trebuie sa utilizam exact n/2 litere R
#include<iostream.h>
#include<conio.h>
#include<math.h>
int st[20],n,k;char a[5];
void init()
{st[k]=0;}
int succesor()
{if (st[k]<4)
{st[k]++;
return 1;
}
else return 0;}
int valid()
{int i,nr;
if(k>1) if(st[k]==st[k-1]) return 0;
if(k==n)
{nr=0; for(i=1;i<=n;i++) if(a[st[i]]==’R’) return 0;}
return 1;}
int sol()
{return (k==n);}
void tipar()
{for(int i=1;i<=n;i++) cout<<a[st[i]];
cout<<endl;
}
void bkt()
{int as;k=1;
init();
while(k>0)
{
do {} while ((as=succesor()) && !valid());
if (as)
if (sol()) tipar();
else {k++;init();}
else k–;
}
}
void main()
{cout<<“n=”;cin>>n;
a[1]=’A’;a[2]=’R’;a[3]=’G’;a[4]=’V’;
bkt();
}
{joscommentenable}