|
| 1 | +<h2><a href="https://leetcode.com/problems/minimum-total-distance-traveled/">2463. Minimum Total Distance Traveled</a></h2><h3>Hard</h3><hr><div><p>There are some robots and factories on the X-axis. You are given an integer array <code>robot</code> where <code>robot[i]</code> is the position of the <code>i<sup>th</sup></code> robot. You are also given a 2D integer array <code>factory</code> where <code>factory[j] = [position<sub>j</sub>, limit<sub>j</sub>]</code> indicates that <code>position<sub>j</sub></code> is the position of the <code>j<sup>th</sup></code> factory and that the <code>j<sup>th</sup></code> factory can repair at most <code>limit<sub>j</sub></code> robots.</p> |
| 2 | + |
| 3 | +<p>The positions of each robot are <strong>unique</strong>. The positions of each factory are also <strong>unique</strong>. Note that a robot can be <strong>in the same position</strong> as a factory initially.</p> |
| 4 | + |
| 5 | +<p>All the robots are initially broken; they keep moving in one direction. The direction could be the negative or the positive direction of the X-axis. When a robot reaches a factory that did not reach its limit, the factory repairs the robot, and it stops moving.</p> |
| 6 | + |
| 7 | +<p><strong>At any moment</strong>, you can set the initial direction of moving for <strong>some</strong> robot. Your target is to minimize the total distance traveled by all the robots.</p> |
| 8 | + |
| 9 | +<p>Return <em>the minimum total distance traveled by all the robots</em>. The test cases are generated such that all the robots can be repaired.</p> |
| 10 | + |
| 11 | +<p><strong>Note that</strong></p> |
| 12 | + |
| 13 | +<ul> |
| 14 | + <li>All robots move at the same speed.</li> |
| 15 | + <li>If two robots move in the same direction, they will never collide.</li> |
| 16 | + <li>If two robots move in opposite directions and they meet at some point, they do not collide. They cross each other.</li> |
| 17 | + <li>If a robot passes by a factory that reached its limits, it crosses it as if it does not exist.</li> |
| 18 | + <li>If the robot moved from a position <code>x</code> to a position <code>y</code>, the distance it moved is <code>|y - x|</code>.</li> |
| 19 | +</ul> |
| 20 | + |
| 21 | +<p> </p> |
| 22 | +<p><strong class="example">Example 1:</strong></p> |
| 23 | +<img alt="" src="https://assets.leetcode.com/uploads/2022/09/15/example1.jpg" style="width: 500px; height: 320px;"> |
| 24 | +<pre><strong>Input:</strong> robot = [0,4,6], factory = [[2,2],[6,2]] |
| 25 | +<strong>Output:</strong> 4 |
| 26 | +<strong>Explanation:</strong> As shown in the figure: |
| 27 | +- The first robot at position 0 moves in the positive direction. It will be repaired at the first factory. |
| 28 | +- The second robot at position 4 moves in the negative direction. It will be repaired at the first factory. |
| 29 | +- The third robot at position 6 will be repaired at the second factory. It does not need to move. |
| 30 | +The limit of the first factory is 2, and it fixed 2 robots. |
| 31 | +The limit of the second factory is 2, and it fixed 1 robot. |
| 32 | +The total distance is |2 - 0| + |2 - 4| + |6 - 6| = 4. It can be shown that we cannot achieve a better total distance than 4. |
| 33 | +</pre> |
| 34 | + |
| 35 | +<p><strong class="example">Example 2:</strong></p> |
| 36 | +<img alt="" src="https://assets.leetcode.com/uploads/2022/09/15/example-2.jpg" style="width: 500px; height: 329px;"> |
| 37 | +<pre><strong>Input:</strong> robot = [1,-1], factory = [[-2,1],[2,1]] |
| 38 | +<strong>Output:</strong> 2 |
| 39 | +<strong>Explanation:</strong> As shown in the figure: |
| 40 | +- The first robot at position 1 moves in the positive direction. It will be repaired at the second factory. |
| 41 | +- The second robot at position -1 moves in the negative direction. It will be repaired at the first factory. |
| 42 | +The limit of the first factory is 1, and it fixed 1 robot. |
| 43 | +The limit of the second factory is 1, and it fixed 1 robot. |
| 44 | +The total distance is |2 - 1| + |(-2) - (-1)| = 2. It can be shown that we cannot achieve a better total distance than 2. |
| 45 | +</pre> |
| 46 | + |
| 47 | +<p> </p> |
| 48 | +<p><strong>Constraints:</strong></p> |
| 49 | + |
| 50 | +<ul> |
| 51 | + <li><code>1 <= robot.length, factory.length <= 100</code></li> |
| 52 | + <li><code>factory[j].length == 2</code></li> |
| 53 | + <li><code>-10<sup>9</sup> <= robot[i], position<sub>j</sub> <= 10<sup>9</sup></code></li> |
| 54 | + <li><code>0 <= limit<sub>j</sub> <= robot.length</code></li> |
| 55 | + <li>The input will be generated such that it is always possible to repair every robot.</li> |
| 56 | +</ul> |
| 57 | +</div> |
0 commit comments