Horizontes


Submit solution


Points: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Authors:
Problem type
Allowed languages
Ada, BrainF***, C, C#, C++, Dart, Go, Java, JS, Kotlin, Lua, Pascal, Prolog, Python, Swift, VB

La última vez que visité Bytelandia admiré su hermoso horizonte. También me hizo pensar: “Mmm, ¿qué parte de los edificios veo realmente?”, Ya que los edificios se cubren total o parcialmente entre sí cuando se ven desde la distancia.

/res/problem/horizontes/skyline.png

En este problema, asumimos que todos los edificios tienen una forma trapezoidal cuando se ven desde una distancia. Es decir, paredes verticales pero un techo que puede inclinarse.

Tarea

Dadas las coordenadas de los edificios, calcule qué parte de cada edificio le es visible (es decir, no está cubierta por otros edificios).

Entrada

La primera línea contiene un número entero, N (2 \le N \le 100), el número de edificios en la ciudad. Luego, sigue las líneas que describen un edificio. Cada una de estas líneas contiene 4 enteros, x_1, y_1, x_2, y_2 (0 \le x_1 < x_2 \le 10000, 0 < y_1, y_2 \le 10000). Los edificios se entregan en orden de distancia, siendo el primero el más cercano a usted, y así sucesivamente.

Salida

Para cada edificio, genere una línea que contenga un número de punto flotante entre 0 y 1, parte visible del edificio relativa. El error absoluto para cada edificio debe ser menor que 10^6.

Ejemplo #1 de Entrada

4
2 3 7 5
4 6 9 2
11 4 15 4
13 2 20 2

Ejemplo #1 de Salida

1.00000000
0.38083333
1.00000000
0.71428571

/res/problem/horizontes/skyline1.png

Figura al primer caso de prueba

Ejemplo #2 de Entrada

5
200 1200 400 700
1200 1400 1700 900
5000 300 7000 900
8200 400 8900 1300
0 1000 10000 800

Ejemplo #2 de Salida

1.00000000
1.00000000
1.00000000
1.00000000
0.73667852

Comments

There are no comments at the moment.