在遥远的海岛上,有一个探险队,他们决定进行一次极限挑战。在探险过程中,他们需要安排一个人爬上一座高塔,由于这座塔的墙壁非常光滑,徒手攀爬已经不可能了,他们也没有找到任何可用的工具。
聪明的队长想到了一个原始的办法:搭人梯,每个人站在另一个人的肩膀上,直到人梯的高度超过塔的高度,最上面的人就可以爬到塔上。经过计算,探险队的 N 个人搭建的人梯正好符合这个要求。
还没有来得及高兴,大家又发现了另一个头疼的问题:如何安排人梯的顺序,也就是谁在下面,谁在上面,才是比较合理的安排呢?
队长统计了每个探险队员都有自己的体重和强壮度,编号为 i 的队员的体重为 W_i,强壮度为 P_i。显而易见的是,越强壮的人,越能承受更多人的体重。(体重重的人不一定强壮哦)
当人梯形成后,每个队员都会感受到一定的压力,为了综合体重和强壮度两个参数,定义某个队员感受到的压力值的计算方式为:该队员上方所有队员的体重和,减去该队员的强壮度。这个值可能是负数,如果是负数,代表对于该成员来说,毫无压力,负数的值越小,表示成员越轻松。
人梯的压力值,用所有成员的最大压力值表示。
请你编程计算出,如何安排队员搭人梯的顺序,才能使得人梯的压力值最小。你只需要输出这个最小的人梯压力值即可。
第一行一个整数 N,代表探险队的人数。
接下来 N 行,每行两个整数 W_i 和 P_i,代表第 i 个人的体重和强壮度。
输出一个整数,代表人梯的最小压力值。
3 20 10 5 8 6 12
1
5 10 20 5 9 20 10 8 8 9 10
22
6 10 50 8 30 10 20 12 10 2 50 6 10
-2
共 3 个人,按照如下方式搭人梯,可以获得最小的人梯压力值。
体重为 5 强壮度为 8 的队员,站在人梯的顶端,他感受到的压力值为:0-8=-8。
体重为 6 强壮度为 12 的队员,站在人梯的中间,他感受到的压力值为:5-12=-7。
体重为 20 强壮度为 10 的队员,站在人梯的最下方,他感受到的压力值为:11-10=1。
对于 60\% 的数据,满足 1 \le N \le 1000。
对于 100\% 的数据,满足 1 \le N \le 5 \times 10^4,1 \le W_i \le 10^4,1 \le P_i \le 10^9。