Московская олимпиада по информатике на сайте www.olympiads.ru |
Новости | Об олимпиаде | Личная олимпиада | Командная олимпиада | Заочный тур | Сборы | Странички других лет | www.olympiads.ru |
Московская городская олимпиада школьников по информатике,
2005/06 учебный год
|
Имя входного файла: | d.in |
Имя выходного файла: | d.out |
Максимальное время работы на одном тесте: | 3 секунды |
Максимальный объем используемой памяти: | 64 мегабайта |
Поле для игры в новую игру "Гексагон" разбито на шестиугольники (см. рисунок). Игрок, стартуя из некоторого начального шестиугольника, сделал несколько ходов. Каждый ход заключается в перемещении фишки в соседний шестиугольник (имеющий с тем, где находилась фишка до начала хода, общую сторону) - тем самым, ход делается вдоль одного из направлений X, Y или Z (см. рисунок). Игрок записал все свои ходы, причем если фишка двигалась вдоль какого-либо направления несколько раз подряд, то в записи это обозначается указанием направления и количества ходов, которые были сделаны.
Напишите программу, которая найдет кратчайший (по количеству совершаемых ходов) путь в начальную клетку из той, где фишка оказалась после ходов игрока.
Формат входных данных
В первой строке входного файла записано число N - количество строк в записи перемещений фишки (1≤N≤100). Далее идет N строк с записью ходов: в каждой строке записана сначала большая буква X, Y или Z, задающая направление, затем пробел, и число, задающее количество ходов в данном направлении (число может быть и отрицательным, если игрок перемещал фишку параллельно оси, но в направлении, противоположном направлению оси). Все числа по модулю не превышают 200.
Формат выходных данных
В выходной файл выведите описание кратчайшего пути обратно в начальную клетку в том же формате, в каком описание задано во входном файле (за исключением ограничений). Все числа, определяющие количество ходов в каком-либо направлении, должны быть ненулевыми.
Пример
d.in | d.out |
4 Z -2 Y 3 Z 3 X -1 |
2 Y -2 Z -2 |