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