Código fuente del diseño del curso
int s[100], t = 0;
void BA(int a[4], int b[4]);
void Xu(int a[4])
{
int i, j, k
for(I = 0; i lt3; i )for(j = I 1;j lt4;j )if(a[I] lt;a[j])
{
k = a[I];
a[I]= a[j];
a[j]= k
}
}
int f(int a[4], int x)
{
int i, j=0, b[4];
para (I = 0; a[I]; i )
{
si(i==x)continuar;
b[j]= a[ I];
Si (j amp ampb[j]==b[j-1]-1) devuelve 1;
j;
}
Devuelve 0;
}
Entero g()
{
int i, r; p>
p>
for(I = t-1;i gt= t/2;i-=2)
{
for(r = 0 ; r ltt-I ;r )if(s[t-r]!= s[I-r])romper;
if(r==t-i)romper;
}
si (Iltt/2) devuelve 0;
de lo contrario, devuelve 1;
}
void huan(int a[4], int b [4], int x)
{
int I;
for(I = 0; a[i]!= x; i);
a[I]= 0;
b[3]= x;
Xu (1);
Xu (2) ;
p>
}
nulo AB(int a[4], int b[4])
{
int I;
for(I = 0;a[I-1]| | I = = 0;i)
{
si(f (a,I))continuar;
s[t]= a[I];
if(g()) continuar
huan(a); , b, s[t]) ;
t ;
si(a[0]= = 0)romper;
BA(A, B) ;
if(a[0]= = 0)romper;
t-;
Huan(b, a, s[t]);
}
}
anular BA(int a[4], int b[4])
{
int I;
for(I = 0;b[I-1]| | I = = 0;i)
{
if( f(b,I))continuar ;
s[t]= b[I];
if(g())continuar;
huan( b,a,s[t] );
t
AB(a, b)
if(a[0]= = 0) romper;
t-;
Huan(a, b, s[t]);
>
}
}
void main()
{
int i, a[4]={3, 2, 1}, b[4]= { 0 };
AB(a, b
for(I = 0; iltt; i )
{
If(i2)printf("Agricultores del Banco B al Banco A:");
Else printf("Agricultores del Banco A al Banco B:" );
Cambiar
{
Caso 0: printf(" nada "); Interrupción;
Caso 1: printf(" "Liderar el lobo a través del río"); Break;
Caso 2: printf ("Conduce a las ovejas a través del río"); Break;
Caso 3: printf ("Trae la comida al otro lado del río" ); romper;
}
printf(" \ n ");
}
}