아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Pinball

시간 제한2초메모리 제한64 MB

요약
n×m 격자에 k-1개의 거울이 놓여 있을 때, 45도로 움직이는 공이 경계점 A에서 B로 최단 경로로 도달하도록 거울 하나를 추가로 배치하는 위치와 방향을 찾는다.
난이도

보통10점 중 7점

유형
시뮬레이션, 그래프, BFS
정답자
아직 제출이 없습니다

문제

Поле в Pinball представляет собой прямоугольник без стенок, состоящий из n×mn\times m квадратных клеток, (nn клеток по вертикали, mm клеток по горизонтали). Клетки по вертикали нумеруются сверху вниз, по горизонтали --- слева направо. В каждой клетке можно установить одну отражающую пластинку в одном из двух положений: в положении 1 --- от левого верхнего угла к правому нижнему или в положении 2 --- от левого нижнего к правому верхнему. Летящий шарик при столкновении с пластинкой изменяет свою траекторию, при этом угол падения шарика всегда равен углу отражения и составляет 45∘45^\circ (см. рисунок).   

На границе прямоугольника заданы две точки AA и BB, являющиеся серединами сторон некоторых клеток поля.  Пластинки расставляются  таким образом, чтобы шарик, запущенный из точки AA, попал в точку BB. При этом шарик начинает движение внутрь поля перпендикулярно стороне клетки, на которой находится точка AA.

Изначально на поле были расставлены kk пластинок таким образом, чтобы шарик попал из точки AA в точку BB. После этого одну из пластинок удалили. Необходимо определить, куда и как можно поставить удаленную пластинку, чтобы шарик, выпущенный из точки AA, попал в точку BB. При этом требуется, чтобы длина пути шарика была минимальной. Пластинку нужно поставить на некоторую свободную клетку даже в том случае, если шарик попадает в точку BB и без нее. 

Требуется написать программу, устанавливающую пластинку таким образом, чтобы шарик попадал из точки AA в точку BB и длина его пути была минимальна.

입력

Первая строка входного файла содержит три числа: nn, mm (1≤n,m≤10001 \le n, m \le 1000) и kk, где kk --- общее количество пластинок, которые были исходно расставлены. 

Во второй строке указываются номера клетки по вертикали и по горизонтали, на границе которой лежит точка AA, и номер стороны, на которой она находится. Стороны клетки пронумерованы целыми числами от 1 до 4, при этом верхней стороне присвоен номер 1, далее по часовой стрелке нумеруются остальные стороны. 

Третья строка содержит описание точки BB в том же формате.

Номера сторон клетокВозможные положения пластинок

Следующие k−1k-1 строк описывают пластинки, оставшиеся на поле. В каждой строке записаны по три числа: первое --- номер клетки по вертикали, второе --- номер клетки по горизонтали, третье --- положение пластинки в клетке (число 1 или 2).

출력

Выходной файл должен содержать три числа: номера клетки, в которую  следует поставить пластинку, по вертикали и горизонтали и ее положение. Если решений несколько, выведите любое.

예제1

  1. 예제 1

    입력
    6 5 5
    6 4 3
    4 5 2
    2 4 1
    4 4 1
    2 2 2
    5 4 1
    
    예상 출력
    5 2 1