编程题
### 问题描述
在一维数轴上有两个谷仓分别位于位置 $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$。