Coding Dojo #9: Miojo

Estamos Iniciando o mês de outubro, como já é de praxe escolhemos uma nova linguagem para o Coding Dojo, e a linguagem contemplada pela equipe, foi o Python. O interessante, foi mesmo na equipe não tendo nenhum especialista na linguagem, não foi apresentado dificuldades com a sintaxe, porém não foi necessário um conhecimento mais aprofundado na mesma.

Este Kata foi um pouco diferente dos demais, por dedicarmos praticamente metade do tempo para planejamento e entendimento do problema, por um lado foi positivo, pois passamos a discutir um pouco mais de lógica e algoritmo, foi ate interessante que obtivemos duas boas soluções para o kata, o que até gerou uma certa divergência, que foi solucionado de forma democrática, mas por outro lado foi mais limitado o tempo de mão na massa.

Natália e todos ficaram  morrendo de vontade de comer miojo(gordinha so pensa em comer mesmo!! rs)

Problema: MIOJO


João é um fanático por miojos; ele os adora, e, como era de se esperar, ele levou vários pacotes quando foi acampar com seus colegas. Como João só gosta de miojos feitos com o tempo exato, ele se deseperou ao perceber que havia esquecido seu relógio em casa.

Por sorte, ele conseguiu, no caminho, comprar duas ampulhetas de durações diferentes. Por exemplo, se o miojo precisa de 3 minutos para ficar pronto, e João tiver uma ampulheta de 5 minutos e outra de 7, uma possível forma de cozinhar o miojo é:

  1. João começa virando as duas ampulhetas ao mesmo tempo.
  2. Quando a areia da ampulheta de 5 minutos se esgotar, João torna a virá-la.
  3. João começa a preparar o miojo quando a areia da ampulheta de 7 minutos acabar.
  4. João tira o miojo do fogo quando a ampulheta de 5 minutos acabar novamente.

Dessa forma, o miojo ficará 3 minutos no fogo (do minuto 7 ao minuto 10). Assim, apesar do miojo levar apenas três minutos para ser cozido, ele precisa de 10 minutos para ficar pronto.

Faça um programa que, dado o tempo de preparo do miojo, e os tempos das duas ampulhetas (ambos maiores que o tempo do miojo), determina o tempo mínimo necessário para o miojo ficar pronto. Você pode supor que sempre é possível cozinhar o miojo no tempo correto.

Entrada

A entrada contém um único caso de teste, composto por uma única linha, que contém três inteiros T, A e B, representando o tempo necessário para o preparo do miojo, o tempo da primeira ampulheta e o tempo da segunda ampulheta respectivamente.

Saída

Seu programa deve produzir uma única linha na saída, contendo o tempo mínimo para o preparo do miojo.

Restrições

  • 0 ≤ T ≤ 10000
  • T < A, B ≤ 40000

Exemplo

Entrada

3 5 7




Saída

10




Entrada

14 15 22




Saída

44


Retrospectiva:

Bom:

  • Linguagem(PYTHON)
  • Super organização dos Curadores
  • Evolução TDD
  • Atualização do S.O
  • Planejamento longo
  • Demonstrar solução no quadro


Ruim:

  • Guerra de EGO
  • Falta de se orientar aos testes
  • Falta de conhecimento da linguagem


Para próximos:

  • Conectar tudo antes de ligar a máquina
  • Estudar mais PYTHON


Dados do encontro:

Organizadores:  Rafael Salomão, e Natália Marcondes

Participantes: Carlos EduardoMarco MouraNatália MarcondesPatricia CarvalhoRafael SalomãoLuciana Mendes

Kata: Miojo ( http://br.spoj.pl/problems/MIOJO/)

Código fonte :http://gist.github.com/613372


Fotos: