Imagina que um fazendeiro precisa atravessar um rio de canoa, mas ele tem um lobo, uma ovelha e um repolho. O fazendeiro só pode levar uma coisa por vez na viagem, e pode fazer várias viagens. Se a raposa for deixada sozinha com a ovelha, ela comerá a ovelha. Se a ovelha for deixada sozinha com o repolho, ela comerá o repolho. Escreva um algoritmo pra ajudar o fazendeiro a atravessar o rio e chegar com todos os seus pertences.
Passo 1
Fala ai, maninho! Antes de tudo, queria te lembrar que exercícios de algoritmo não costumam ter somente uma solução, beleza? Então, vamo lá! Vou te mostrar uma delas.
Uma coisa importante a se notar antes da gente começar é que a gente tem 2 problemas: deixar o lobo com a ovelha e deixar a ovelha com o repolho. Mas se a gente deixar o lobo com o repolho não tem problema, né? Afinal, lobos não comem repolho! Hahah. Vamos usar esse fato pra desenvolver nosso algoritmo.
Em primeiro lugar, vamos levar a ovelha, já que deixar o lobo com o repolho não trás nenhum problema.
Passo 2
Agora, vamos voltar pra buscar mais alguma coisa, e deixar a ovelha do outro lado do rio mesmo.
Passo 3
Beleza! Agora a gente precisa levar mais alguma coisa. Vamos levar o repolho!
Repara que se a gente deixar o repolho com a ovelha, teremos problemas. Na verdade, se a gente tivesse trazido a raposa em vez do repolho, teríamos problemas também, certo?? Então, se liga na malandragem: vamos deixar o repolho e levar a ovelha de volta!
Passo 4
Se liga que se a gente deixar a ovelha com nada em nenhum dos lados. Como a gente pode resolver isso?! A gente pode deixar a ovelha no lugar da raposa e levar a raposa. Se liga só.
Olha! Se a gente deixar a raposa com o repolho, não vai ter problema! Muahahahah trolamos a raposa!
Passo 5
Agora a gente volta pra pegar a ovelha.
Pronto! Atravessamos tudo!!
Valeu, maninho! Espero que tenha entendido sobre o que são algoritmos e, talvez, se divertido durante o processo.
Até a próxima!