编程题
### 问题描述 在一维数轴上有两个谷仓分别位于位置 $0$ 和 $L$。此外,有 $N$ 头奶牛在数轴上的不同位置(假设谷仓和奶牛都可以被看作点)。每头奶牛 $i$ 最初位于位置 $x_i$,并以单位速度沿正方向或负方向移动,速度由整数 $d_i$(取值为 $1$ 或 $-1$)表示。每头奶牛还有一个重量 $w_i$,在区间 $[1, 10^3]$ 内。 所有奶牛都以恒定速度移动,直到发生以下事件之一: 如果奶牛 $i$ 到达一个谷仓,则奶牛 $i$ 停止移动。 当两头奶牛 $i$ 和 $j$ 占据同一点(不是谷仓的点)时,发生一次相遇。在这种情况下,奶牛 $i$ 被赋予奶牛 $j$ 先前的速度,反之亦然。 定义 $T$ 为在奶牛的总重量的一半或更多的奶牛停止移动的最早时刻。请确定在时间 $0 \ldots T$ 范围内奶牛之间的总相遇次数。 ### 输入格式 第一行包含两个空格分隔的整数 $N$ 和 $L$。 接下来的 $N$ 行,每行包含三个由空格分隔的整数 $w_i, x_i$ 和 $d_i$。其中,所有位置 $x_i$ 都是不同的,并且满足 $0 < x_i < L$。 ### 输出格式 输出一个整数,表示奶牛在时间 $0 \ldots T$ 范围内的总相遇次数。 ### 样例输入 ``` 3 5 1 1 1 2 2 -1 3 3 -1 ``` ### 样例输出 ``` 2 ``` ### 评测数据规模 $1 \leq L \leq 10^9$,$1 \leq N \leq 5 \times 10^4$。
查看答案
赣ICP备20007335号-2