CF924D Contact ATC
题目描述
空中交通管制员 Arkady 现在正在管理空中 $n$ 架飞机。所有飞机都沿着一条直线坐标轴飞行,Arkady 的指挥站位于该坐标轴的 $0$ 点。第 $i$ 架飞机(可以视为一个点)当前位于坐标 $x_i$,以速度 $v_i$ 飞行。保证 $x_i \cdot v_i < 0$,即所有飞机都正朝着指挥站飞来。
有时,飞机会受到风的影响。若风速为 $v_{wind}$(不一定为正数或整数),则第 $i$ 架飞机的速度变为 $v_i + v_{wind}$。
据气象报告,目前风速稳定在区间 $[-w, w]$(包含端点)内,但由于风速极小,无法准确测量——它比任何一架飞机的速度绝对值都要小。
每架飞机都应在经过指挥站正上方的那一刻与 Arkady 通信。你需要帮助 Arkady 统计有多少对飞机 $(i, j)$($i < j$)满足存在某个可能的风速值,使得飞机 $i$ 和 $j$ 能在同一时刻经过指挥站。对于不同的飞机对,风速值可以不同。
风速对所有飞机都是相同的。你可以假设风速稳定且持续任意长时间。
输入格式
第一行包含两个整数 $n$ 和 $w$($1 \leq n \leq 100000$,$0 \leq w < 10^{5}$),分别表示飞机数量和最大风速。
接下来的 $n$ 行中,第 $i$ 行包含两个整数 $x_i$ 和 $v_i$($1 \leq |x_i| \leq 10^{5}$,$w+1 \leq |v_i| \leq 10^{5}$,$x_i \cdot v_i < 0$),表示第 $i$ 架飞机的初始位置和速度。
保证所有飞机互不相同,即不存在一对 $(i, j)$($i < j$)同时满足 $x_i = x_j$ 且 $v_i = v_j$。
输出格式
输出一个整数,表示可以在同一时刻经过指挥站的飞机对数。
说明/提示
在第一个样例中,以下 $3$ 对飞机满足要求:
- $(2,5)$ 在 $v_{wind}=1$ 时以 $3/4$ 时刻经过指挥站;
- $(3,4)$ 在 $v_{wind}=1/2$ 时以 $2/5$ 时刻经过指挥站;
- $(3,5)$ 在 $v_{wind}=-1/4$ 时以 $4/7$ 时刻经过指挥站。
在第二个样例中,所有 $3$ 架坐标为负的飞机都可以与其它 $3$ 架飞机组成有效对,共 $9$ 对。
由 ChatGPT 4.1 翻译