#A0134. 跳房子

跳房子

跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一。

跳房子的游戏规则如下:

在地面上确定一个起点,然后在起点右侧画 nn 个格子,这些格子都在同一条直线上。

每个格子内有一个数字(整数),表示到达这个格子能得到的分数。

玩家第一次从起点开始向右跳,跳到起点右侧的一个格子内。

第二次再从当前位置继续向右跳,依此类推。

规则规定:玩家每次都必须跳到当前位置右侧的一个格子内。

玩家可以在任意时刻结束游戏,获得的分数为曾经到达过的格子中的数字之和。

现在小 RR 研发了一款弹跳机器人来参加这个游戏。

但是这个机器人有一个非常严重的缺陷,它每次向右弹跳的距离只能为固定的 dd

RR 希望改进他的机器人,如果他花 gg 个金币改进他的机器人,那么他的机器人灵活性就能增加 gg,但是需要注意的是,每次弹跳的距离至少为 11

具体而言,当 g<dg<d 时,他的机器人每次可以选择向右弹跳的距离为 dg,dg+1,dg+2d+g2d+g1d+gd-g, d-g+1, d-g+2,…,d+g-2,d+g-1,d+g;否则(当 gdg≥d 时),他的机器人每次可以选择向右弹跳的距离为 123d+g2d+g1d+g1,2,3,…,d+g-2,d+g-1,d+g

现在小 RR 希望获得至少 kk 分,请问他至少要花多少金币来改造他的机器人。

输入格式

第一行三个正整数 ndkn,d,k,分别表示格子的数目,改进前机器人弹跳的固定距离,以及希望至少获得的分数,相邻两个数之间用一个空格隔开。

接下来 nn 行,每行两个正整数 xi,six_i,s_i,分别表示起点到第 ii 个格子的距离以及第 ii 个格子的分数。

两个数之间用一个空格隔开,保证 xix_i 按递增顺序输入。

输出格式

共一行,一个整数,表示至少要花多少金币来改造他的机器人。

若无论如何他都无法获得至少 kk 分,输出 1-1

数据范围

1n5000001 \le n \le 500000,
1d20001 \le d \le 2000,
1xi,k1091 \le x_i,k \le 10^9,
si105|s_i| \le 10^5

输入样例:

7 4 10
2 6
5 -3
10 3
11 -3
13 1
17 6
20 2

输出样例:

2