Главная > Кубик
1995
Имя входного файла: input.txt
Имя выходного файла: output.txt

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


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

Первое строка в файле содержит количество наборов исходных данных. Каждый набор записывается на отдельной строке и задается следующим образом. В начале записываются координаты начальной и конечной позиций кубика. Координата состоит из прописной буквы и следующей за ней без пробела цифры (см. пример и рисунок). Далее следуют 6 чисел, записанных на гранях кубика. Первым идет число, записанное на передней грани, далее - на задней, верхней, правой, нижней и левой гранях соответстсвенно. Исходный файл не содержит пустых строк.


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

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


Пример

input.txtoutput.txt
2
a1 b2 1 1 1 1 1 1
e2 e3 0 8 1 2 1 1
3 a1 b1 b2
5 e2 d2 d1 e1 e2 e3

 
Hosted by uCoz