
    Given two lists where nums1 represents distances from distribution centers to checkpoints and nums2 represents distances from checkpoints to final destinations, find k delivery routes with the shortest total distances. Each route must consist of exactly one distance from nums1 and one distance from nums2, and the routes should be selected to minimize the overall fleet's fuel consumption.
    

    
import heapq

def k_smallest_pairs(nums1, nums2, k):
    """
    Given two lists where nums1 represents distances from distribution centers to checkpoints and nums2 represents distances from checkpoints to final destinations, find k delivery routes with the shortest total distances. Each route must consist of exactly one distance from nums1 and one distance from nums2, and the routes should be selected to minimize the overall fleet's fuel consumption.
    

    """
import heapq

def k_smallest_pairs(nums1, nums2, k):
    """
    Given two lists where nums1 represents distances from distribution centers to checkpoints and nums2 represents distances from checkpoints to final destinations, find k delivery routes with the shortest total distances. Each route must consist of exactly one distance from nums1 and one distance from nums2, and the routes should be selected to minimize the overall fleet's fuel consumption.
    

    """
    queue = []

    def push(i, j):
        if i < len(nums1) and j < len(nums2):
            heapq.heappush(queue, [nums1[i] + nums2[j], i, j])
    push(0, 0)
    pairs = []
    while queue and len(pairs) < k:
        (_, i, j) = heapq.heappop(queue)
        pairs.append([nums1[i], nums2[j]])
        push(i, j + 1)
        if j == 0:
            push(i + 1, 0)
    return pairs