Cpp intuitive solution...Two passes
IntuitionSince the bus stops form a circular route, there are two possible paths between any two stops:
Thedirect pathmoving forward fromstarttodestination.
The
## **Intuition**  
Since the bus stops form a circular route, there are two possible paths between any two stops:  
1. The **direct path** moving forward from `start` to `destination`.  
2. The **alternative path** moving in the opposite direction (completing the full circle and subtracting the direct path distance).  

To find the shortest path, we compute both distances and return the minimum.  

## **Approach**  
1. If `start > destination`, swap them to ensure we always measure the direct path in the forward direction.  
2. Compute the **direct path** distance by summing values in the `distance` array from `start` to `destination`.  
3. Compute the **total circular distance** by summing all values in the `distance` array.  
4. Compute the **alternative path** distance as `total distance - direct path distance`.  
5. Return the **minimum** of the two distances.  

## **Complexity**  
- **Time complexity:**  
  - We iterate over the `distance` array twice (once for the direct path and once for the total sum), leading to **\(O(n)\)** time complexity.  

- **Space complexity:**  
  - We use only a few integer variables for storing sums, so the space complexity is **\(O(1)\)**.

# Code
```cpp []
class Solution {
public:
    int distanceBetweenBusStops(vector<int>& distance, int start, int destination) {
        int sumTotal=0;
        int sum=0;
        if(start>destination)
        {
            swap(start,destination);
        }
        for(int j=start;j<destination;j++)
        {
            sum+=distance[j];
        }
        for(int i=0;i<distance.size();i++)
        {
            sumTotal+=distance[i];
        }
        int r=sumTotal-sum;
        return min(r,sum);
        
    }
};
```
['C++']