Maryam is an electrical engineer. She is designing wiring on a communication tower. On the tower there are some connection points, placed at distinct heights. A wire can be used to connect any two connection points. Each connection point can be connected to an arbitrary number of wires. There are two types of connection points: red and blue.
For the purpose of this problem the tower should be viewed as a line and the connection points as blue and red points that are at non-negative integer coordinates on this line. The length of a wire is the distance between the two connection points it connects.
Your goal is to help Maryam find a wiring scheme such that:
- Each connection point has at least one wire to a connection point of a different color.
- The total length of the wires is minimized.
Implementation details
You should implement the following procedure:
long long min_total_length(std::vector<int> r, std::vector<int> b)
: array of length containing the positions of the red connection points in increasing order. : array of length containing the positions of the blue connection points in increasing order.- This procedure should return the minimum total length of wires, among all valid wiring schemes.
- Note that the return type of this procedure is
long long
.
Example
min_total_length({1, 2, 3, 7}, {0, 4, 5, 9, 10})
The figure below illustrates this example.
- The tower is shown horizontally.
- In the black-and-white printed version of the problem statement the red connection points are dark and the blue ones are light.
- There are
red connection points, located at positions , , , and . - There are
blue connection points, located at positions , , , , and . - One optimal solution is shown in the figure above.
- In this solution, the total length of the wires is
, which is optimal. So, the procedure should return . - Note that two wires are connected to the connection point at position
.
Constraints
, for all , for all ,- Each of the arrays
and is sorted in ascending order. - All
values in the arrays and are distinct.
Subtasks
- (7 points)
, - (13 points) All red connection points have positions smaller than any blue connection points.
- (10 points) There is at least one red connection point and one blue connection point among every
consecutive connection points. - (25 points) All connection points have different positions in the range
. - (45 points) No additional constraints.
Sample grader
The sample grader reads the input in the following format:
- line
: - line
: - line
:
The sample grader prints a single line containing the return value of min_total_length
.
Comments