原题来自:CEOI 2004
从山顶上到山底下沿着一条直线种植了n 棵老树。当地的政府决定把他们砍下来。为了不浪费任何一棵木材,树被砍倒后要运送到锯木厂。
n
木材只能朝山下运。山脚下有一个锯木厂。另外两个锯木厂将新修建在山路上。你必须决定在哪里修建这两个锯木厂,使得运输的费用总和最小。假定运输每公斤木材每米需要一分钱。
你的任务是编写一个程序,读入树的个数和他们的重量与位置,计算最小运输费用。
输入的第一行为一个正整数 n,表示树的个数 。树从山顶到山脚按照 1,2,⋯,n标号。
1,2,⋯,n
接下来n 行,每行有两个整数 w_i 和 d_i 。分别表示第i棵树的重量(公斤为单位)和第 i棵树和第i+1 棵树之间的距离。最后一个数 d_n ,表示第 n 棵树到山脚的锯木厂的距离。
i
i+1
输出仅一个数,表示最小的运输费用。
91 22 13 31 13 21 62 11 21 1
26
样例说明
下图展示了对于样例输入的最佳伐木场设置位置,树木用一个圆表示,伐木场用黑色标出。结果为:
数据范围与提示:
对于97 分的数据, 2≤n≤2×10^4,1≤wi≤10^4,0≤di≤10^4 ,保证所有树运到山脚的锯木厂所需要的费用小于 2×10^9 分。(本部分数据为原数据)
97
对于另外 3分的数据, 2≤n≤2×10^5 ,保证所有计算均可在 64 位有符号整数下进行。
3
64