Pinball
시간 제한2초메모리 제한64 MB
n×m 격자에 k-1개의 거울이 놓여 있을 때, 45도로 움직이는 공이 경계점 A에서 B로 최단 경로로 도달하도록 거울 하나를 추가로 배치하는 위치와 방향을 찾는다.
문제
Поле в Pinball представляет собой прямоугольник без стенок, состоящий из квадратных клеток, ( клеток по вертикали, клеток по горизонтали). Клетки по вертикали нумеруются сверху вниз, по горизонтали --- слева направо. В каждой клетке можно установить одну отражающую пластинку в одном из двух положений: в положении 1 --- от левого верхнего угла к правому нижнему или в положении 2 --- от левого нижнего к правому верхнему. Летящий шарик при столкновении с пластинкой изменяет свою траекторию, при этом угол падения шарика всегда равен углу отражения и составляет (см. рисунок).
На границе прямоугольника заданы две точки и , являющиеся серединами сторон некоторых клеток поля. Пластинки расставляются таким образом, чтобы шарик, запущенный из точки , попал в точку . При этом шарик начинает движение внутрь поля перпендикулярно стороне клетки, на которой находится точка .

Изначально на поле были расставлены пластинок таким образом, чтобы шарик попал из точки в точку . После этого одну из пластинок удалили. Необходимо определить, куда и как можно поставить удаленную пластинку, чтобы шарик, выпущенный из точки , попал в точку . При этом требуется, чтобы длина пути шарика была минимальной. Пластинку нужно поставить на некоторую свободную клетку даже в том случае, если шарик попадает в точку и без нее.
Требуется написать программу, устанавливающую пластинку таким образом, чтобы шарик попадал из точки в точку и длина его пути была минимальна.
입력
Первая строка входного файла содержит три числа: , () и , где --- общее количество пластинок, которые были исходно расставлены.
Во второй строке указываются номера клетки по вертикали и по горизонтали, на границе которой лежит точка , и номер стороны, на которой она находится. Стороны клетки пронумерованы целыми числами от 1 до 4, при этом верхней стороне присвоен номер 1, далее по часовой стрелке нумеруются остальные стороны.
Третья строка содержит описание точки в том же формате.
Следующие строк описывают пластинки, оставшиеся на поле. В каждой строке записаны по три числа: первое --- номер клетки по вертикали, второе --- номер клетки по горизонтали, третье --- положение пластинки в клетке (число 1 или 2).
출력
Выходной файл должен содержать три числа: номера клетки, в которую следует поставить пластинку, по вертикали и горизонтали и ее положение. Если решений несколько, выведите любое.

