# Distance between Bus Stops Problem & Solution

A bus has n stops numbered from 0 to n - 1 that form a circle. We know the distance between all pairs of neighboring stops where distance[i] is the distance between the stops number i and (i + 1) % n.

The bus goes along both directions i.e. clockwise and counterclockwise.

Return the shortest distance between the given start and destination stops.

## C++ Solution

#pragma GCC optimize("Ofast")
#pragma GCC optimization("unroll-loops")
#pragma GCC target("avx,avx2,fma")

static const int _=[](){std::ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);return 0;}();

class Solution {
public:
int distanceBetweenBusStops(vector<int>& distance, int start, int destination) {
int clockwise = 0;
int node = start;
while (node != destination) {
clockwise += distance[node];
node = (node + 1) % distance.size();
}

int counterclockwise = 0;
node = destination;
while (node != start) {
counterclockwise += distance[node];
node = (node + 1) % distance.size();
}

return min(clockwise, counterclockwise);
}
};

## Sample Search Queries

Many Paths. Follow Yours.