IOI '17 P2 - Wiring
View as PDFMaryam 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