El perfil de la ciudad

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

Puntos: 20

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

Una ciudad tiene \(n\) edificios rectangulares apoyados en el suelo. El edificio \(i\) ocupa horizontalmente \([l_i, r_i]\) y tiene altura \(h_i\). El perfil de la ciudad es el contorno superior que forman todos juntos.

Descríbelo con sus puntos clave: cada punto \((x, y)\) indica que, a partir de la coordenada \(x\), la altura del perfil pasa a ser \(y\). Los puntos van ordenados por \(x\), dos puntos seguidos nunca tienen la misma altura y el último punto tiene \(y = 0\) (donde termina el último edificio).

Entrada

La primera línea tiene \(n\) \((1 \le n \le 10^5)\). Cada una de las siguientes \(n\) líneas tiene \(l_i\), \(r_i\) y \(h_i\) \((0 \le l_i < r_i \le 2^{31} - 1, 1 \le h_i \le 2^{31} - 1)\). Los edificios vienen ordenados por \(l_i\).

Salida

La primera línea tiene la cantidad \(p\) de puntos clave. Siguen \(p\) líneas con \(x\) \(y\).

Ejemplo 1

Entrada

5
2 9 10
3 7 15
5 12 12
15 20 10
19 24 8

Salida

7
2 10
3 15
7 12
12 0
15 10
20 8
24 0

Ejemplo 2

Entrada

2
0 2 3
2 5 3

Salida

2
0 3
5 0

Ejemplo 3

Entrada

1
1 2 1

Salida

2
1 1
2 0

Comentarios

No hay comentarios por el momento.