Se citesc n litere.Sa se formeze toate cuvintele de cate p litere formate din cele n litere astfel incat aceeasi litera sa nu se afle pe 2 pozitii alaturate.
#include<iostream.h>
#include<conio.h>
int n,st[10],k,p;
char v[10];
int valid(int k)
{
if((k>1) && (st[k]==st[k-1])) return 0;
return 1;
}
int sol(int k)
{
return (k==p);
}
void tipar(int p)
{
for(int i=1;i<=p;i++)
cout<<v[st[i]];
cout<<endl;
}
void bkt(int k)
{
for(int val=1;val<=n;val++)
{st[k]=val;
if (valid(k))
if (sol(k)) tipar(p);
else bkt(k+1);
}}
void main()
{
int i;
cout<<“n=”;cin>>n;
cout<<“p=”;cin>>p;
for(i=1;i<=n;i++)
{cout<<“v[“<<i<<“]=”;cin>>v[i];}
bkt(1);
getch();
}
{joscommentenable}