Não há loop na sua primeira entrada. Vamos dividir:
a b c d c b a b
Ou, colocando em pares:
- a < b
- c < d
- c < b
- a < b (este especificado duas vezes!)
Então você tem que ambos "a" e "c" vêm antes de "b" e que "c" também vem antes de "d". Mas não há loops lá!
No seu segundo exemplo, o que você tem são dois loops diretos, ambos com < b, b < um (loop!) e também c < d, d < c (loop!)
Colocá-los em um gráfico para visualização (você pode querer olhar para o programa dot
) pode ajudá-lo a visualizar esses loops facilmente!