To 3.


Submit solution

Points: 100 (partial)
Time limit: 2.0s
Memory limit: 1G

Author:
Problem types
Allowed languages
C, C++, Java, JS, Pascal, Python, VB

Dado es un entero positivo N, donde ninguno de los dígitos es 0. Sea k el número de dígitos en N. Queremos hacer un múltiplo de 3 borrando al menos 0 y como máximo k-1 dígitos de N y concatenando los dígitos restantes sin cambiar el orden.

Determine si es posible hacer un múltiplo de 3 de esta manera. Si es posible, encuentre el número mínimo de dígitos que se deben borrar para formar dicho número.

Restricciones

  • 1 \leq N < 10^{18}
  • Ninguno de los dígitos en N es 0.

Entrada

En una sola línea el valor de N

Salida

Si es imposible hacer un múltiplo de 3, imprime -1; de lo contrario, imprima la cantidad mínima de dígitos que deben borrarse para formar dicho número.

Ejemplo #1 de Entrada

35

Ejemplo #1 de Salida

1

Al borrar el 5, obtenemos el número 3, que es múltiplo de 3. Aquí borramos el mínimo número posible de dígitos: 1.

Ejemplo #2 de Entrada

369

Ejemplo #2 de Salida

0

Ejemplo #3 de Entrada

6227384

Ejemplo #3 de Salida

1

Por ejemplo, borrando el 8 obtenemos el número 622734, que es múltiplo de 3.

Ejemplo #4 de Entrada

11

Ejemplo #4 de Salida

-1

Tenga en cuenta que debemos borrar al menos 0 y como máximo k-1 dígitos, donde k es el número de dígitos en N, por lo que no podemos borrar todos los dígitos. En este caso, es imposible hacer un múltiplo de 3 de la manera descrita en el enunciado del problema, por lo que debemos imprimir -1.


Comments

There are no comments at the moment.