Ir al contenido (saltar navegación)

Semáforos sin parar

Tiempo máximo: 4,000 sMemoria máxima: 4096 KiB

Adolfo ya no aguanta más. No le gusta parar en los semáforos; tanto es así que prefiere ir más lento por las avenidas para que los semáforos se vayan abriendo a su paso en vez de ir a más velocidad y tener que parar en un semáforo cerrado. Bueno, en realidad tiene un límite: no puede ir a menos de 0.1 metros por segundo (m/s) porque si no el coche se le cala.

Ha estado pensando y ha tomado una decisión: cuando se encuentre en una gran avenida llena de semáforos va a intentar ir a una velocidad constante elegida estratégicamente para que todos los semáforos estén abiertos en el momento de pasar por debajo de ellos. Además, quiere que cuando llegue al último semáforo de la avenida, éste se esté justo abriendo o cerrando (en ambas situaciones seguirá su camino).

El cuñado de Adolfo, que trabaja en el ayuntamiento, le ha dado información privilegiada de todas las calles con semáforos de su ciudad (en ninguna de ella hay más de 100 semáforos). Gracias a él, conoce la velocidad máxima de cada avenida, la distancia en metros que hay entre cada semáforo y cuántos segundos está cada uno de ellos abierto y cerrado. El cuñado, al ver su obsesión, también le ha confesado que la policía no tiene la precisión suficiente en sus métodos de detección para multar si pasa hasta una centésima de segundo después de que el semáforo se haya cerrado.

Con todos estos datos, Adolfo se propone averiguar la velocidad a la que tiene que pasar por cada calle para no parar, asumiendo que cuando comienza el recorrido de la calle todos sus semáforos acaban de cerrarse.

Consideremos, por ejemplo, una avenida cuya velocidad máxima son 10m/s con dos semáforos. El primer semáforo está situado a 50 metros del principio de la avenida y el último a 100 metros. Los dos tardan 10 segundos en abrirse pero el primero sólo permanece 4 segundos abierto, mientras que el segundo está 10 segundos abierto.

Figura del primer caso de prueba

En esta avenida, Adolfo hace sus cálculos y se da cuenta de que lo más rápido que puede ir es a 5m/s. Efectivamente a esa velocidad pasará por el primer semáforo 10 segundos después de haber empezado el recorrido, justo en el momento de abrirse (recuérdese que cuando empieza el recorrido ambos semáforos acaban de cerrarse), y llega al final de la avenida 10 segundos después, justo cuando el último semáforo se cierra.

Adolfo también se da cuenta de que si la velocidad máxima en vez de 10m/s fuera 4m/s otro gallo cantaría. Entonces tendría que decidir ir a 2m/s. Así, pasaría debajo del primer semáforo a los 25 segundos, justo un segundo después de que se abra por segunda vez, y por debajo del último semáforo justo cuando se abre por tercera vez.

Entrada

La entrada estará formada por un conjunto de casos de prueba consecutivos.

Cada caso de prueba constará de dos líneas. La primera línea contendrá dos números enteros, el primero indica el número de semáforos de la avenida y el segundo la velocidad máxima en m/s. La segunda línea tiene la información de todos los semáforos separada por espacios. Cada semáforo consta de tres números enteros también separados por espacios: la distancia (en metros) con el semáforo anterior (o con el principio de la avenida si se trata del primer semáforo), el número de segundos que permanece cerrado y el número de segundos que está abierto.

Los casos de prueba terminan con 0 0 (es decir, con un caso de prueba sin semáforos y cuya velocidad máxima es 0 m/s). Ten en cuenta que todos los semáforos se cierran alguna vez, pero hay algunos que no se abren nunca (lo que se traduce en que el tiempo que permanecen abiertos es 0).

Salida

Para cada caso de prueba, el programa indicará el número de segundos que Adolfo tarda en recorrer la avenida completa de tal forma que no se salte ningún semáforo (teniendo en cuenta la precisión de la policía) y el último semáforo lo pase justo en el momento de cambiar de rojo a verde o de verde a rojo. Si con los semáforos que hay en la avenida es imposible pasarlos todos abiertos sin cambiar de velocidad, se escribirá IMPOSIBLE.

Entrada de ejemplo

2 10
50 10 4 50 10 10
2 4
50 10 4 50 10 10
1 10
10 110 100
3 10
100 31 1 1 30 1 1 31 1
0 0

Salida de ejemplo

20
50
IMPOSIBLE
IMPOSIBLE