luogu#P4264. [USACO18FEB] Teleportation S

[USACO18FEB] Teleportation S

题目描述

One of the farming chores Farmer John dislikes the most is hauling around lots of cow manure. In order to streamline this process, he comes up with a brilliant invention: the manure teleporter! Instead of hauling manure between two points in a cart behind his tractor, he can use the manure teleporter to instantly transport manure from one location to another. Farmer John's farm is built along a single long straight road, so any location on his farm can be described simply using its position along this road (effectively a point on the number line). A teleporter is described by two numbers xx and yy, where manure brought to location xx can be instantly transported to location yy.

Farmer John decides to build a teleporter with the first endpoint located at x=0x=0; your task is to help him determine the best choice for the other endpoint yy. In particular, there are NN piles of manure on his farm (1N100,0001 \leq N \leq 100,000). The iith pile needs to moved from position aia_i to position bib_i, and Farmer John transports each pile separately from the others. If we let did_i denote the amount of distance FJ drives with manure in his tractor hauling the iith pile, then it is possible that di=aibid_i = |a_i-b_i| if he hauls the iith pile directly with the tractor, or that did_i could potentially be less if he uses the teleporter (e.g., by hauling with his tractor from aia_i to xx, then from yy to bib_i).

Please help FJ determine the minimum possible sum of the did_i's he can achieve by building the other endpoint yy of the teleporter in a carefully-chosen optimal position. The same position yy is used during transport of every pile.

输入格式

The first line of input contains NN. In the NN lines that follow, the iith line contains aia_i and bib_i, each an integer in the range 108108-10^8 \ldots 10^8. These values are not necessarily all distinct.

输出格式

Print a single number giving the minimum sum of did_i's FJ can achieve. Note that this number might be too large to fit into a standard 32-bit integer, so you may need to use large integer data types like a "long long" in C/C++. Also you may want to consider whether the answer is necessarily an integer or not...

题目大意

Farmer John最讨厌的农活是运输牛粪。为了精简这个过程,他制造了一个伟大的发明:便便传送门!与使用拖拉机拖着装满牛粪的大车从一个地点到另一个地点相比,他可以使用便便传送门将牛粪从一个地点瞬间传送到另一个地点。 Farmer John的农场沿着一条长直道路而建,所以他农场上的每个地点都可以简单地用该地点在道路上的位置来表示(相当于数轴上的一个点)。一个传送门可以用两个数xxyy表示,被拖到地点xx的牛粪可以瞬间传送到地点yy

Farmer John决定建造一个起点位于x=0x=0的传送门;你的任务是帮助他确定最佳的终点yy。具体地说,在他的农场上有NN堆牛粪(1N100,0001 \leq N \leq 100,000)。第ii堆牛粪需要被从位置aia_i移动到位置bib_i,Farmer John会分别运输每一堆牛粪。我们设did_i为FJ使用拖拉机运输第ii堆牛粪的距离,则当他直接使用拖拉机运输第ii堆牛粪时,有di=aibid_i = |a_i-b_i|,或者did_i可能在他使用传送门的情况下可以变得更小(比方说,用他的拖拉机从aia_i运到xx,再从yy运到bib_i)。

请帮助FJ求出,在他恰当选择传送门的终点yy的情况下,能够达到的所有did_i的和的最小值。在所有牛粪的运输中,终点位置yy是相同的。

输入格式(文件名:teleport.in): 输入的第一行包含NN。在下面的NN行中,第ii行包含aia_ibib_i,每个整数都在108108-10^8 \ldots 10^8之间。这些数值不一定各不相同。 输出格式(文件名:teleport.out): 输出一个数,为能够达到的did_i的和的最小值。注意这个数字可能超过标准的32位整数型能够表示的范围,所以你可能需要使用更大的数据类型,例如C/C++中的“long long”。同样你可能需要考虑答案是否一定是一个整数……

3
-5 -7
-3 10
-2 7
10

提示

In this example, by setting y=8y = 8 FJ can achieve d1=2d_1 = 2, d2=5d_2 = 5, and d3=3d_3 = 3. Note that any value of yy in the range [7,10][7,10] would also yield an optimal solution.

Problem credits: Brian Dean