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
é
. 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
.
