АВТ
Language: Russian
English

Remote Training on Programming

Problems Online status Contests
News FAQ E-learning
For authors:
Register  ||  Login
 
Hello, Guest! Please login or register.

409. Treasure Pusher

Time Limit: 2 seconds
Memory Limit:65536KB
Points:100
View Problem Statistics Submit Problem added Undefined

Лабиринт представляет собой матрицу MxN, некоторые ячейки которой пустые, а остальные заполнены камнями. В одной из пустых ячеек находится клад, а в другой — кладотолкатель. Кладотолкатель и клад не могут находиться в ячейках, заполненных камнями, за пределами лабиринта, а также одновременно в одной и той же ячейке. Кладотолкатель может передвигаться в соседнюю ячейку (соседними считаются ячейки, граничащие по стороне), а также передвигать клад следующим образом: нужно встать в соседнюю к кладу ячейку и толкнуть его от себя. При этом клад передвинется в соседнюю ячейку в направлении, заданном толчком, а кладотолкатель переместится в ячейку, где только что находился клад.

Требуется написать программу, которая определяет последовательность толчков и передвижений кладотолкателя, следуя которой клад можно передвинуть к выходу (выход находится в пустой ячейке). Так как клад очень тяжелый, количество толчков должно быть минимальным. При наличии нескольких оптимальных последовательностей следует указать любую из них.

Формат входных данных:

Первая строка входного файла содержит числа М и N . Следующие М строк содержат описание лабиринта. Каждая строка состоит из N символов, описывающих ячейки лабиринта: заполненная камнями ячейка обозначается латинской буквой 'X', пустая ячейка обозначается символом '.' (ASCII код 46), начальная позиция кладотолкателя — буквой 'Y', начальная позиция клада — латинской буквой 'В', выход — латинской буквой 'Т'.

Формат выходных данных:

Если решения не существует, то файл должен cодержать слово 'NO'. Иначе, в первой строке выходного файла должно содержаться слово 'YES', а во второй строке — последовательность символов, определяющая действия кладотолкателя, в частности, символы 'w', 'e', 'n', 's' обозначают передвижения кладотолкателя на запад, восток, север и юг соответственно, а символы 'W', 'E', 'N', 'S' обозначают толчки кладотолкателя в соответствующих направлениях.

Пример файлов входных и выходных данных:

stdin

stdout

3 3

..Y

.B.

TXX

YES

sWnwS

 


View Problem Statistics Submit Problem discussion Author/source:
Problems from Contests and Camps / School olympiads and couses of Vologda region / All-Russian school olympiad, regioanl stage / Vologda Region School Olympiad 2003-2004 /
410. Rectangles 409.
time generating 0.172 sec.
© Copyright VSU, AVT, Nosov D.A., Andrianov I.A.