Backtracking cifre pare crescatoare

Folosind metoda backtracking, sa se scrie un program care genereaza toate nr din 3 cifre pare,cifrele strict in ordine crescatoare


#include<iostream.h>
#include<math.h>
int st[20],i,p,v[]={0,2,4,6,8};

int valid(int p)
{
for(i=1;i<p;i++)
if(st[p]<=st[i])return 0;
if(p==1 && st[p]==0)return 0;
return 1;
}


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

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

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

void main()
{
bkt(1);
}