Solução Informática – Iniciante – Semana 38

por

Solução escrita por João Pedro Castro

Sabemos que $$X$$ pode ser escrito como $$10 \cdot Y + Z$$, sendo $$Z$$ o algarismo na casa das unidades de $$X$$ (basicamente estamos adicionando um $$0$$ ao fim de $$Y$$ e adicionando um algarismo $$Z$$, o que troca o $$0$$ por esse algarismo). Portanto:

$$10 \cdot Y + Z + Y = N$$  $$\implies$$ $$11 \cdot Y + Z = N$$  $$\implies$$ $$11 \cdot Y = N – Z$$ $$\implies$$ $$Y = \frac{N – Z}{11}$$

O problema pede que $$Y$$ seja um inteiro, logo $$N – Z$$ é necessariamente divisível por 11. Felizmente existe uma função matemática que determina o quanto você precisa subtrair de um número positivo para ele ser divisível por outro, a função módulo. Portanto, $$Z = (N \bmod 11)$$. Como $$Z$$ é um algarismo $$0 \leq Z \leq 9$$, logo se $$Z = 10$$ não existe solução (podemos imprimir -1). Agora que sabemos o valor de $$Z$$ e que existe uma solução, é só seguir a fórmula que achamos anteriormente para $$Y$$. E como a fórmula de $$X$$ só depende de $$Y$$ e $$Z$$ (2 valores que já calculamos), também é só seguir a definição anterior para fechar a questão.

Como a complexidade para cada caso de teste é $$O(1)$$, podemos afirmar que a complexidade final é de $$O(T)$$, o que nos garante um AC com tranquilidade. Segue o código abaixo para melhor compreensão.

https://gist.github.com/ortsc/2f01891fc554782b302bccb8b90d29d0