QOJ.ac

QOJ

時間限制: 1.0 s 記憶體限制: 256 MB 總分: 100

#13157. 火炮与防御墙

统计

Sauville 几个世纪以来一直深陷于与邻国 Norland 的毁灭性战争中。两国的边界可以表示为一条水平直线 $y = 0$,其中所有 $y < 0$ 的区域属于 Sauville,所有 $y > 0$ 的区域属于 Norland。

Norland 在位置 $(x_i, y_i)$(其中 $y_i > 0$)部署了 $N$ 门火炮。此外,Norland 还建造了 $M$ 道防御墙。每道防御墙可以表示为一个元组 $(x_{j1}, x_{j2}, y_j)$,即从 $(x_{j1}, y_j)$ 到 $(x_{j2}, y_j)$ 的水平线段,其中 $x_{j1} < x_{j2}$ 且 $y_j > 0$。Sauville 已知 Norland 的任何火炮都不会位于其防御墙上(包括端点),且没有两门火炮位于同一位置。同时已知没有任何两道防御墙(包括端点)共享公共点。

Sauville 决定建造一座瞭望塔来观察 Norland 火炮的任何可疑活动。由于建造一座瞭望塔的成本对 Sauville 来说几乎是天文数字,他们只能负担得起建造一座。因此,他们提出了 $Q$ 个瞭望塔位置候选点 $(x_k, y_k)$,其中 $y_k < 0$。如果瞭望塔建在 $(x, y)$,那么所有位于从 $(x, y)$ 出发的视线上的火炮都可以被瞭望塔观察到(可见)。当且仅当连接 $(x_i, y_i)$ 和 $(x, y)$ 的直线段不与任何防御墙(包括端点)相交时,位置 $(x_i, y_i)$ 位于从 $(x, y)$ 出发的视线上;换句话说,不存在点 $(x', y')$ 使得 $(x', y')$ 既位于某道防御墙上,又位于连接 $(x_i, y_i)$ 和 $(x, y)$ 的线段上。注意,火炮不会影响从瞭望塔观察其他火炮的可见性。

你的任务是确定从每个提议的瞭望塔位置可以观察到多少门 Norland 的火炮。

输入格式

输入的第一行包含三个整数:$N, M, Q$ ($1 \le N \le 40000; 0 \le M \le 5; 1 \le Q \le 40000$),分别表示火炮数量、防御墙数量和提议的瞭望塔位置数量。 接下来的 $N$ 行,每行包含两个整数:$x_i, y_i$ ($-10^6 \le x_i \le 10^6; 0 < y_i \le 10^6$),表示第 $i$ 门火炮的位置。 接下来的 $M$ 行,每行包含三个整数:$x_{j1}, x_{j2}, y_j$ ($-10^6 \le x_{j1} < x_{j2} \le 10^6; 0 < y_j \le 10^6$),表示第 $j$ 道防御墙的位置。 接下来的 $Q$ 行,每行包含两个整数:$x_k, y_k$ ($-10^6 \le x_k \le 10^6; -10^6 \le y_k < 0$),表示一个提议的瞭望塔位置。

输出格式

对于每个提议的瞭望塔位置,按照输入顺序,在一行中输出一个整数,表示从该位置可以观察到的 Norland 火炮数量。

样例

样例输入 1

6 2 3
0 2
0 15
5 7
15 15
35 12
45 10
5 20 5
25 40 10
0 -5
5 -10
20 -15

样例输出 1

4
3
2

说明

所有火炮、防御墙和提议的瞭望塔位置如下图所示:

  • 第一个提议的瞭望塔 $(0, -5)$ 可以观察到 4 门火炮,即位于 $(0, 2), (0, 15), (5, 7)$ 和 $(45, 10)$ 的火炮。
  • 第二个提议的瞭望塔 $(5, -10)$ 可以观察到 3 门火炮,即位于 $(0, 2), (0, 15)$ 和 $(45, 10)$ 的火炮。
  • 第三个提议的瞭望塔 $(20, -15)$ 可以观察到 2 门火炮,即位于 $(0, 2)$ 和 $(45, 10)$ 的火炮。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.