printРабочее место участника

printЗадачи

210. Снегоуборочная машина

Ограничения: время – 5s/10s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Главная улица столицы Флатландии представляет собой прямоугольник с вершинами в точках (0, 0), (0, 2), (`N`, 2), (`N`, 0). Ночью во Флатландии был сильный снегопад и теперь на некоторых единичных квадратиках улицы лежит снег. Снегоуборочная машина представляет собой отрезок длины 1, изначально расположеный так, что его концы имеют координаты (`K`, 0) и (`K`, 1). Снегоуборочная машина может за 1 секунду переместиться в горизонтальном направлении на 1, при этом ее отрезок «заметает» клетку. Если на этой клетке был снег, то он исчезает. Кроме того, машина может мгновенно переместиться на 1 вверх или вниз (при этом отрезок перемещается по прямой, на которой он лежит).
Поскольку по главной улице скоро поедет машина президента Флатландии, необходимо как можно скорее убрать снег. Выясните, за какое время это можно сделать и приведите последовательность действий машины, которая позволяет убрать снег за это время.
Первая строка ввода содержит `N` и `K\ (1\ ≤\ N\ ≤\ 1000,\ 0\ ≤\ K\ ≤\ N)`. Следующие `N` строк содержат по два числа каждая, первое число `i`+1-й строки равно 1, если на клетке (`i`, 0) лежит снег и 0 в противном случае. Второе число показывает, есть ли снег на клетке (`i`, 1).
На первой строке выведите количество секунд, которое потребуется, чтобы убрать снег. На следующей строке выведите последовательность действий снегоуборочной машины в следующем формате: каждое действие обозначается заглавной буквой латинского алфавита, соответствие букв действиям приведено в слудующей таблице:
БукваДействие
Rпереместиться вправо на клетку (на вектор (1, 0) )
Lпереместиться влево на клетку (на вектор (-1, 0) )
Uпереместиться вверх (на вектор (0, 1) )
Dпереместиться вниз (на вектор (0, –1) )
В процессе работы машина не должна выходить за пределы дороги. Конечное положение машины может быть любым.

Пример ввода 1

4 0
0 0
1 1
0 0
0 1

Пример вывода 1

6
RRULRRR

Пример ввода 2

4 0
0 0
0 1
0 0
1 1

Пример вывода 2

5
URRRRDL
Источник: IX командный чемпионат школьников Санкт-Петербурга по программированию
loading