Comentário NOIC OBI 2021 – Fase 3 – Ogro

por

Escrito por Pedro Racchetti

Conhecimentos utilizados:

Note que como $$n$$ é bastante baixo e existe apenas uma resposta para cada $$n$$, bastaria fazer uma sequência de 11 $$ifs$$. No entanto, isso tornaria o código longo, e aumentaria a chances de erros de digitação, as vezes difíceis de serem corrigidos – lembre-se, tempo é um recurso valioso na OBI! Portanto, ao invés de dividir o problema em vários casos, iremos calcular, a partir de $$n$$, quantos dedos cada mão irá mostrar, dividindo o problema em apenas três casos:

  • $$n = 0$$, haverá 0 dedos sendo mostrados em cada mão;
  • $$0 < n \leq 5$$ haverá $$n$$ dedos na mão esquerda, e 0 na direita;
  • $$5 < n \leq 10$$ Haverá 5 dedos na mão esquerda, e $$n-5$$ na direita.

Sabendo a quantidade exata de dedos em cada mão, podemos fazer dois $$fors$$, um para cada mão, para imprimir o número apropriado de dedos, devidamente tratando os casos em que uma mão não mostra dedos.

A complexidade da solução é $$O(n)$$, já que entre os dois $$fors$$, haverão no máximo $$n$$ operações. Segue o código, para melhor compreensão.