만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

골프 타임

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

요약
각 시작점에서 벽에 튕기며 대각선으로 움직이는 공이 연못에 처음 닿는 시간과 위치를 구하고, 영원히 닿지 않으면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
시뮬레이션, 수학, 정수론
정답자
아직 제출이 없습니다

문제

갈리나는 열정적인 골프 선수이고, 자유 시간의 대부분을 미니골프장에서 보낸다. 그녀가 가장 좋아하는 코스는 직사각형이며, 한 변은 남북 방향과, 다른 변은 동서 방향과 평행하다. 공은 매우 작아서 점으로 볼 수 있다.

갈리나는 "퍼트"라는 샷을 연습하려고 한다. 이 샷에서는 공을 코스 안의 어떤 곳에 놓고 북동쪽으로 친다. 속력은 2\sqrt{2} 인치/초이다. 즉 공은 매초 북쪽으로 1인치, 동쪽으로 1인치씩 움직인다.

이 골프장은 마찰을 완전히 없애는 혁신적인 기술을 쓴다. 그래서 공은 이동한 거리와 상관없이 처음 속력을 그대로 유지한다. 코스 경계에 부딪히면 완전 탄성 충돌한다.

코스 안에는 연못이 하나 있다. 연못은 변이 코스의 변과 평행한 단순 다각형으로 표현된다. 공이 연못에 닿으면 그 자리에서 가라앉는다.

갈리나의 다음 퍼트 연습을 위해 시작 좌표 목록이 주어진다. 각 시작 위치에서 퍼트를 했을 때, 공이 연못에 빠지기 전까지 얼마나 움직이는지, 그리고 정확히 어디에서 빠지는지 구하라. 공이 영원히 움직이는 경우도 있으면 그것을 판별하라.

입력

첫 줄에는 코스의 너비와 높이(인치)를 나타내는 두 정수 ww와 hh가 주어진다. 단, 4≤w,h≤5⋅1084 \le w, h \le 5 \cdot 10^8이다. 좌표계는 코스의 네 꼭짓점을 (0,0)(0, 0), (w,0)(w, 0), (w,h)(w, h), (0,h)(0, h)로 두며, 점 (1,1)(1, 1)은 (0,0)(0, 0)의 북동쪽에 있다.

둘째 줄에는 연못 다각형의 꼭짓점 개수 nn이 주어진다(4≤n≤10004 \le n \le 1000).

다음 nn개 줄에는 꼭짓점의 좌표 xix_i와 yiy_i가 순서대로 주어진다. 단, 1≤xi≤w−11 \le x_i \le w - 1, 1≤yi≤h−11 \le y_i \le h - 1이다. 꼭짓점은 모두 서로 다르며, 어떤 꼭짓점도 다각형의 변 위에 놓여 있지 않다. 모든 변은 수직(xi=xi+1x_i = x_{i+1}, 단 xn=x1x_n = x_1) 또는 수평(yi=yi+1y_i = y_{i+1}, 단 yn=y1y_n = y_1)이고, 어떤 두 변도 교차하지 않는다.

다음 줄에는 시작 위치의 개수 tt(1≤t≤1001 \le t \le 100)가 주어진다. 이어서 tt개 줄에 시작 위치의 좌표 xix_i와 yiy_i가 주어진다. 단, 1≤xi≤w−11 \le x_i \le w - 1, 1≤yi≤h−11 \le y_i \le h - 1이다. 어떤 시작 위치도 연못 내부나 경계 위에 있지 않다. 시작 위치들은 서로 독립이며, 어느 순간에도 코스 안에는 공이 하나만 있다고 가정한다.

출력

각 시작 위치에 대해 입력 순서대로 한 줄씩 출력한다. 공이 영원히 가라앉지 않으면 -1을 출력한다. 가라앉으면 세 정수 τ\tau, xsx_s, ysy_s를 출력한다. τ\tau는 공이 가라앉기까지 걸린 시간(초, τ>0\tau > 0)이고, (xs,ys)(x_s, y_s)는 공이 가라앉는 지점이다(1≤xs≤w−11 \le x_s \le w - 1, 1≤ys≤h−11 \le y_s \le h - 1). 이 점은 반드시 연못의 경계 위에 있어야 한다.

힌트

첫 번째 예제에서 공의 궤적은 다음과 같다.

두 번째 예제에서 시작 위치 1과 3은 같은 점이고, 위치 2에서 출발한 공은 멈추지 않는다.

예제2

  1. 예제 1

    입력
    10 8
    6
    1 4
    1 5
    3 5
    3 6
    4 6
    4 4
    4
    2 2
    1 7
    4 7
    7 5
    
    예상 출력
    2 4 4
    3 4 6
    13 3 4
    15 2 4
    
  2. 예제 2

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