VK Cup 2016 - Квалификация 1 |
---|
Закончено |
Спортсмен стартует из точки xstart = 0 и бежит в точку с координатой xfinish = m (на прямой). Также спортсмен умеет прыгать — для прыжка он сначала должен взять разбег длины не менее s метров (при этом на протяжении этих s метров на его пути не должно быть препятствий), а после этого он может прыгнуть на длину не более d метров. Бегать и прыгать разрешено только в направлении слева направо. Начинать и заканчивать прыжок можно только в точках с целочисленными координатами, в которых нет препятствий. Чтобы преодолеть какое-то препятствие, нужно приземлиться в точке, которая находится строго правее этого препятствия.
На пути спортсмена есть n препятствий в точках с координатами x1, x2, ..., xn. Пробегать через препятствия нельзя, их можно только перепрыгивать. Перед вами стоит задача определить, сможет ли спортсмен добраться до финишной точки.
В первой строке входных данных следуют четыре целых числа n, m, s и d (1 ≤ n ≤ 200 000, 2 ≤ m ≤ 109, 1 ≤ s, d ≤ 109) — количество препятствий на пути бегуна, координата финишной точки, длина разбега перед прыжком и максимальная длина прыжка соответственно.
Во второй строке следует последовательность из n целых чисел a1, a2, ..., an (1 ≤ ai ≤ m - 1) — координаты препятствий. Гарантируется, что в стартовой и финишной точке нет препятствий, а также в одной точке не может быть более одного препятствия. Координаты препятствий заданы в произвольном порядке.
Если бегун не сможет добраться до финишной точки, выведите в первую строку выходных данных «IMPOSSIBLE» (без кавычек).
Если же спортсмен может добраться от старта до финиша, то выведите любой способ сделать это в следующем формате:
Все команды «RUN» и «JUMP» должны строго чередоваться, начиная с «RUN», а также они должны быть выведены в хронологическом порядке. Не разрешается перепрыгивать финишную точку, но разрешается в ней приземляться после прыжка. Спортсмен должен остановиться, как только достигнет финиша.
3 10 1 3
3 4 7
RUN 2
JUMP 3
RUN 1
JUMP 2
RUN 2
2 9 2 3
6 4
IMPOSSIBLE
Название |
---|