11789. Перетин многокутників
Вершини опуклого \(N\)-кутника \(P\) у площині \(xy\) задаються як (\(x_1, y_1), (x_2, y_2), \ldots, (x_N, y_N)\) у напрямку проти годинникової стрілки. (Тут додатний напрямок осі \(x\) правий, а додатний напрямок осі \(y\) догори.)
На основі цього багатокутника \(P\) розглянемо \(M\) опуклі \(N\)-кутники \(P_1, P_2, \ldots, P_M\).
Для \(i = 1, 2, \ldots, M\) багатокутник \(P_i\) отримується шляхом зміщення \(P\) в додатному напрямку осі \(x\) на \(u_i\) і в додатному нарпямку осі \(y\) на \(v_i\). Іншими словами, \(P_i\) є опуклим \(N\)-кутником, вершинами якого є (\(x_1+u_i, y_1+v_i), (x_2+u_i, y_2+v_i), \ldots, (x_N+u_i, y_N+v_i)\).
Для кожної з \(Q\) точок \((a_1, b_1), (a_2, b_2), \ldots, (a_Q, b_Q)\), визначте, чи «точка міститься у всіх \(M\) багатокутниках \(P_1, P_2, \ldots, P_M\)."
Тут ми вважаємо, що точка також міститься в багатокутнику, якщо ця точка знаходиться на межі багатокутника.
Обмеження
- \(3 \leq N \leq 50\)
- \(1 \leq M \leq 2 \times 10^5\)
- \(1 \leq Q \leq 2 \times 10^5\)
- \(-10^8 \leq x_i, y_i \leq 10^8\)
- \(-10^8 \leq u_i, v_i \leq 10^8\)
- \(-10^8 \leq a_i, b_i \leq 10^8\)
- Усі значення у вхідних даних є цілими числами.
- \((x_1, y_1), (x_2, y_2), \ldots, (x_N, y_N)\) утворює опуклий \(N\)-кутник проти годинникової стрілки.
- Кожен внутрішній кут багатокутника \(P\) менше 180 градусів.
Формат вхідних даних
Перший рядок містить ціле число \(N\)
Наступні \(N\) рядків містять цілі числа \(x_i, y_i\)
Далі рядок містить ціле число \(M\)
Наступні \(M\) рядків містять цілі числа \(u_i, v_i\)
Далі рядок містить ціле число \(Q\)
Наступні \(Q\) рядків містять цілі числа \(a_i, b_i\)
Числа у рядках розділяються пропуском.
Формат вихідних даних
У вихідний потік виведіть \(Q\) рядків. Для \(i = 1, 2, \ldots, Q\) \(i\)-й рядок має містити Yes, якщо точка (\(a_i, b_i\)) міститься в усіх \(M\) багатокутниках \(P_1, P_2, \ldots, P_M\); інакше він повинен містити No.
Примітка
До прикладу 1:
Приклад вхідних даних
5
-2 -3
0 -2
1 0
0 2
-2 1
2
0 1
1 0
6
0 0
1 0
0 1
1 1
-1 -1
-1 -2
Приклад вихідних даних
Yes
No
Yes
Yes
Yes
No
Приклад вхідних даних
10
45 100
-60 98
-95 62
-95 28
-78 -41
-54 -92
-8 -99
87 -94
98 23
87 91
5
-57 -40
-21 -67
25 39
-30 25
39 -20
16
4 5
-34 -8
-63 53
78 84
19 -16
64 9
-13 7
13 53
-20 4
2 -7
3 18
-12 10
-69 -93
2 9
27 64
-92 -100
Приклад вихідних даних
Yes
Yes
No
No
Yes
No
Yes
No
Yes
Yes
Yes
Yes
No
Yes
No
No
Коментарі