читал и поражался))) мы живём в непобедимой стране даже не решаемые головоломки
у нас моментом становятся баяном и решаются, да у нас вообще каждый третий нобелевский лауреат!
struct zk
{
int flag;
int status;
int vershina[2];
int nomer;
};
zk rules[200];
void initmy_struct(int n_el)
{
for(int i=0;i<200;rules[i].flag=-1,i++) ;
}
int choise_step(int cur_vershina,char *decission_str)
{
int i,j,d;
char buf[10];
for(i=0,d=0;rules[i].flag!=-1 && d==0;i++)
{
if(rules[i].status==1)
d=1;
}
if(d==1)
{
for(i=0;rules[i].flag!=-1;i++)
{
for(j=0;j<2;j++)
{
if(rules[i].vershina[j]==cur_vershina && rules[i].status==1)
{
rules[i].status=2;
switch(j)
{
case 0:
if((d=choise_step(rules[i].vershina[1],decission_str))==0)
{
;
}
break;
case 1:
if(d!=0)
if((d=choise_step(rules[i].vershina[0],decission_str))==0)
{
;
}
break;
}
rules[i].status=1;
}
}
}
return d;
}
else
return 0; // решение есть...... !!!
}
структура заполняется как
flag равен 1 правило есть в ином случае -1
status на существующем правиле равен 1
vershina[2] тут номера вершин для каждого пути
nomer номер пронумерованного пути