Задача №1699. Распознавание изображений
Новый проект Екатерины посвящен распознаванию изображений. При этом она решила применить инновационный подход, основанный на нанотехнологиях. Начать Екатерина решила с простого. Она выбрала d изображений, которые называются «цифрами» от \(0\) до \(d-1\). Каждое изображение представляет собой прямоугольник \(w\) на \(h\), заполненный белыми и черными квадратиками (назовем их пикселами). Все картинки различны (т.е. отличаются хотя бы одним пикселом).
Наноробот размещается в левом верхнем углу изображения и начинает выполнять программу, записанную на специальном языке программирования, описание которого приведено ниже. Задача робота состоит в том, чтобы понять, на какую из d картинок он помещен.
Язык программирования для наноробота содержит следующие команды:
'U', 'D', 'L', 'R' – команды перемещения вверх, вниз, влево и вправо соответственно. Если робот выходит за пределы изображения — программа считается ошибочной.
'(' '0', '1', …, '9' – команда распознавания. Робот должен выполнить одну из этих команд, когда он узнает, на каком изображении он расположен. После этой команды выполнение программы завершается.
Каждое перемещение занимает одну наносекунду. Выполнение условного оператора или оператора распознавания происходит мгновенно.
Ирина заинтересована в правильных программах. Т.е. если робот помещается на картинку, соответствующую цифре \(i\), то программа должна завершиться вызовом команды 'i'.
По данному описанию набора цифр составьте программу, время выполнения которой в худшем случае минимально.
Первая строка содержит три целых числа \(d, h\) и \(w (1 ≤ d, h, w ≤ 10)\) – количество изображений, высота и ширина изображений соответственно.
В следующих строках содержатся d описаний изображений. Каждое описание состоит из \(h\) строк по \(w\) символов в каждой. Символы могут быть двух типов: 'B' и 'W' и обозначать черный и белый пиксел соответственно.
Изображения даются в порядке от \(0\) до \(d-1\). Описания изображений разделены пустой строкой.
Выведите корректную программу для наноробота, работающую за минимальное время в худшем случае. Если таких программ несколько — выведите любую из них. Пробелы при проверке будут игнорироваться.
3 5 4 WBBW BWWB BWWB BWWB WBBW WWBW WBBW BWBW WWBW WWBW WBBW BWWB WWBW WBWW BBBB
D(1:D(2:0))