Description
Farmer John最不喜欢的一项农活就是搬运粪肥。为了能够流水线化这项工作,他创造出了一个伟大的发明:粪肥传送器。它可以代替使用拖拉机在两个站点之间搬运粪肥,这个粪肥传送器可以直接把粪肥从一个站点传送到另一个站点。
Farmer John的农场是沿着一条长直的道路建设的,所以农场上的每个站点都可以用这个站点在这条道路上的位置来表示(相当于数轴上的点)。一个传送器可以用x和y两个数来表示,表示这个传送器可以直接把站点x的粪肥瞬间移动到站点y。
Farmer John决定建造一个起点位于x=0的传送器,你的任务是帮助他确定最佳的中终点y。
具体的说,他在农场上有N堆粪肥(1≤N≤100000),第i堆粪肥需要从位置ai移动到位置bi,Farmer John会分别运送每一堆粪肥。我们假设di为Farmer John使用拖拉机运送第i堆粪肥的距离,所以当他直接用拖拉机运动第i堆粪肥的时候,di=|ai-bi|,或者di可能在他使用传送器的情况下变得更小,比如,他使用时拖拉机从ai运送到x,再从y运送到bi。
请帮助Faemer John计算出,在他恰当的选择传送器的终点y的情况下,能够达到的所有di的和的最小值。在所有粪肥的运送过程中,终点y的值是相同的
Input
第一行:一个整数N,表示有N堆粪肥需要运送
接下来N行,每行两个整数,第i行两个整数ai和bi,-10^8≤ai,bi≤10^8
Output
一行,一个数,能够达到di的和的最小值。注意这个数字可能超过标准的32位整数型能够表示的范围,所以你可能需要使用更大的数据类型,例如C/C++中的“long long”。同样你可能需要考虑答案是否一定是一个整数
HINT
样例说明:
在这个样例中,设置y=8,可以实现d1=2,d2=5,d3=3.注意y取值[7,10]中的任意值都能得到最优解。