Latam++

Tiempo límite 0,1 s Java: 0,333 s
Memoria límite 1 GB
Casos de prueba 54
Enviar solución

Puntos: 1

Tipo de problema
Lenguajes permitidos
C, C++, Java, Python, Rust

En un lenguaje, una variable es una o más letras minúsculas, y las expresiones válidas son exactamente las que se obtienen con estas reglas:

  • una variable es una expresión válida;
  • si \(A\) es válida, \((A)\) también lo es;
  • si \(A\) y \(B\) son válidas, \(A\,c\,B\) también lo es, donde \(c\) es uno de +, -, * o /.

Por ejemplo, a+b*(c+b) y (((a)))*(bb/a/a) son válidas, pero a+, a+b(c+b) y ((()))*(a) no.

Dado un texto \(S\), cuenta cuántos de sus subtextos contiguos son expresiones válidas. Dos subtextos son distintos si empiezan o terminan en posiciones distintas, aunque tengan los mismos caracteres.

Entrada

Una línea con el texto \(S\) \((1 \le |S| \le 2 \cdot 10^5)\), formado por letras minúsculas, paréntesis y los caracteres +, -, * y /.

Salida

Una línea con la cantidad de subtextos que son expresiones válidas.

Ejemplo 1

Entrada

a+b(c+b)

Salida

7

Ejemplo 2

Entrada

aa

Salida

3

Ejemplo 3

Entrada

a-a

Salida

3

Regional Latinoamericana 2023 del ICPC, problema L («Latam++»). Versión en español redactada para este juez; el enunciado oficial, en inglés, está aquí abajo.

Enunciado oficial en inglés (PDF)

Tu navegador no muestra el PDF aquí. Ábrelo en otra pestaña.

Abrir el enunciado oficial en otra pestaña


Comentarios

No hay comentarios por el momento.