问题 1716. -- 砍树

1716: 砍树

时间限制: 1 Sec  内存限制: 128 MB
提交: 18  解决: 6
[提交][状态][讨论版]

题目描述

小A在一条水平的马路上种了n棵树,过了几年树都长得很高大了,每棵树都可以看作是一条长度为a[i]的竖线段。由于有的树过于高大,挡住了其他的树,使得另一些树得不到阳光。如果有两棵树i、j,i顶端与j底端连线的倾角大于45度,我们就定义为i挡住了j。现在小A希望将一些树砍低,使得不存在挡住的情况。他想知道总共最少需要砍掉多少长度,请你来帮他计算一下。
    注意,如果同一位置有两棵树的话,根据题意,我们只能将这两棵树都砍成高度为0才能保证它们不相互挡住,但是高度为0并不代表这棵树不存在。

输入

第一行一个正整数n,表示有n棵树。
接下来n行,每行两个正整数p[i],a[i],表示一棵树的位置和高度

输出

输出一个数,表示最少砍断多少长度。

样例输入

3
0 2
1 2
3 3

样例输出

3

提示

【数据范围】对于50%的数据,n<=100;对于100%的数据,n<=100000,0<p[i],a[i]<=10000

来源

[提交][状态]