Backtracking Algoritmi
Backtracking Algoritmi
#include <iostream>
int st[20],n;
void initializare()
cin>>n;
void afisare(int p)
cout<<st[i]<<' ';
cout<<endl;
int validare(int p)
int i,ok=1;
for (i=1;i<=p-1;i++)
if (st[i]==st[p]) ok=0;
return ok;
void bk(int p)
{
int i;
for (i=1;i<=n;i++)
st[p]=i;
if (validare(p))
else bk(p+1);
int main()
initializare();
bk(1);
#include <iostream>
void initializare()
cin>>n>>k;
void afisare(int p)
int validare(int p)
int i,ok=1;
for(i=1;i<=p-1;i++)
return ok;
void bk(int p)
for(int i=1;i<=n;i++)
{
st[p] = i;
if(validare(p))
if(p==k)
afisare(p);
else
bk(p+1);
int main()
initializare();
bk(1);
return 0;
Combinari
#include <iostream>
int st[20] , n , k;
void initializare()
cin>>n>>k;
void afisare(int p)
int validare(int p)
int i,ok=1;
if(st[i] == st[p])
ok=0;
if(ok > 1)
return 0;
return 1;
}
void bk(int p)
for(int i = 1 ; i <= n ; ++ i)
st[p] = i;
if(validare(k))
if(p==k)
afisare(k);
else
bk(p + 1);
int main()
bk(1);
return 0;