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

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

해상 전투

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

요약
무한 격자에서 두 함대의 점 함선들이 각자의 주기로 이동할 때, 서로 다른 함대의 두 함선이 같은 칸에 오는 가장 이른 단계 번호를 구하고, 그런 일이 없으면 -1을 출력한다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 이분 탐색, 완전 탐색
정답자
아직 제출이 없습니다

문제

보바는 최근 보드게임 <<해상 전투>>를 샀다. 이 게임은 두 명의 플레이어가 무한한 격자 평면에서 번갈아 하는 게임이다. 각 플레이어는 여러 척의 배로 이루어진 함대를 가진다. 각 배는 평면의 정확히 한 칸을 차지한다. 각 플레이어의 함대는 일정한 속도로 평면을 움직이며, ii번째 플레이어의 모든 배는 매 tit_i번째 걸음마다 벡터 (Δxi\Delta x_i, Δyi\Delta y_i)만큼 이동한다. 따라서 ii번째 플레이어의 배는 1, ti+1t_i+1, 2⋅ti+12\cdot t_i+1번째 걸음 등에 평면을 이동한다.

어떤 걸음에서 두 배가 같은 칸에 있게 되면 전투가 일어난다. 배의 전투는 게임에서 가장 흥미로운 부분이므로, 보바는 항상 첫 전투가 몇 걸음 후에 일어나는지 궁금해한다.

게임의 첫 걸음 전 배의 위치와 속도가 주어졌을 때, 가장 가까운 전투가 일어나는 걸음의 번호를 계산하는 프로그램을 작성해야 한다.

입력

입력 파일에는 두 플레이어의 함대에 대한 설명이 들어 있다. 함대 설명은 여러 줄로 이루어진다. 설명의 첫 줄에는 네 개의 정수가 있다. mim_i (1≤mi≤100001 \le m_i \le 10000)는 ii번째 플레이어의 함대에 있는 배의 수이고, tit_i (1≤ti≤101 \le t_i \le 10), Δxi\Delta x_i, Δyi\Delta y_i (∣Δxi∣,∣Δyi∣≤10|\Delta x_i|, |\Delta y_i| \le 10)도 주어진다.

그다음 mim_i개의 줄이 오며, 각 줄에는 두 개의 정수 xjx_j, yjy_j (∣xj∣,∣yj∣≤109|x_j|, |y_j| \le 10^9)가 있다. 이는 게임의 첫 걸음 전 함대에 있는 배의 좌표이다.

입력 파일에 설명된 어떤 두 배도 처음 시점에 같은 칸에 있지 않다.

출력

출력 파일에 첫 전투가 일어나는 걸음의 번호를 출력한다. 전투가 절대 일어나지 않으면 출력 파일에 -1을 출력한다.

예제2

  1. 예제 1

    입력
    3 1 1 0
    2 0
    1 1
    1 -1
    2 2 -2 0
    8 1
    8 2
    
    예상 출력
    3
    
  2. 예제 2

    입력
    1 1 2 0
    1 1
    1 1 -2 0
    2 2
    
    예상 출력
    -1