Módulo de rangos

Tiempo límite 2 s
Memoria límite 256 MB
Casos de prueba 6
Enviar solución

Puntos: 20

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

Mantén un conjunto de números reales, inicialmente vacío, con tres operaciones sobre intervalos semiabiertos \([l, r)\):

  • add l r: agrega todos los números de \([l, r)\);
  • remove l r: quita todos los números de \([l, r)\);
  • query l r: pregunta si todos los números de \([l, r)\) están en el conjunto.

Entrada

La primera línea tiene \(q\) \((1 \le q \le 2 \cdot 10^4)\). Cada una de las siguientes \(q\) líneas tiene una operación, con \(1 \le l < r \le 10^9\).

Salida

Para cada query, una línea con true o false.

Ejemplo 1

Entrada

5
add 10 20
remove 14 16
query 10 14
query 13 15
query 16 17

Salida

true
false
true

Comentarios

No hay comentarios por el momento.