Solução escrita por Arthur Lobo
Conhecimento prévio necessário:
Primeiro, enumeramos todos os possíveis valores de , que podem variar de
até
. Isso acontece porque se
, então o melhor
é
. Isso faz com que qualquer solução
ser pior do que
.
Com o fixado, basta encontrar qual o melhor valor de
, ou seja, minimizar
. Fazendo
, reduzimos o problema para, dado um inteiro
minimizar
.
Se for menor ou igual a
, então o
ótimo é
.
Se for maior que
, então o valor ótimo de
será
ou
.
Com essa solução, podemos varias de
até
e encontrar os dois valores possíveis de
em
utilizando a função sqrt do C++. Sendo assim, essa solução funciona em
.