QOJ.ac

QOJ

حد الوقت: 3 s حد الذاكرة: 1024 MB مجموع النقاط: 100

#5604. 三角形包含

الإحصائيات

你最近发现你的农田里埋藏着宝藏。大量的宝藏!你很快决定在土地周围围上栅栏。

可惜,你只有一个栅栏桩!你必须开车去镇上买更多的围栏材料。但你不能就这样把土地敞开着,所以你决定在离开期间搭建一个临时栅栏来保护部分宝藏。你将把桩子钉在地上,并在谷仓墙壁的两侧和栅栏桩之间拉起一条直线,围出一个三角形区域。此外,地面非常坚硬:只有挖掘过宝藏的地方才足够松软,可以让你快速地安放栅栏桩。

为了找出最佳方案,你首先需要进行以下计算。对于田里的每一个宝藏,如果你把栅栏桩放在该宝藏处并按上述方式完成栅栏,那么被栅栏围住的所有宝藏的总价值是多少?注意,你放置桩子处的宝藏不被视为被栅栏围住(因为有人可能会在桩子周围挖掘,这可能不安全)。

样例输入 1 如下图所示。包含点 $(-1, 10)$ 的三角形恰好围住了另外两个宝藏点,它们的总价值为 $4 + 8 = 12$。

输入格式

第一行包含两个整数 $n$ ($1 \le n \le 10^5$) 和 $x$ ($1 \le x \le 10^9$),其中 $n$ 是宝藏点的数量,$x$ 确定了谷仓墙壁的两个角,位置分别为 $(0, 0)$ 和 $(x, 0)$。

接下来的 $n$ 行,每行包含三个整数 $x_i, y_i$ 和 $v_i$ ($-10^9 \le x_i \le 10^9, 1 \le y_i \le 10^9, 1 \le v_i \le 10^9$),给出了其中一个宝藏点的位置 $(x_i, y_i)$ 和价值 $v_i$。所有这些点都是不同的。此外,保证对于每个点,它与谷仓墙壁形成的三角形边界上不会包含任何其他宝藏点。

输出格式

输出 $n$ 行,按输入顺序为每个宝藏点输出一行。对于每个点,输出一个整数,表示该点与谷仓墙壁形成的三角形内部所有点的总价值。注意,该点自身的价值应从总和中排除。

样例

样例输入 1

5 8
-8 1 1
-1 10 2
0 3 4
7 1 8
8 2 16

样例输出 1

0
12
0
0
8

样例输入 2

6 6
0 1 1
2 3 10
2 5 100
3 1 1000
3 5 10000
4 5 100000

样例输出 2

0
1000
1010
0
1010
1000

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.