#include <iostream>
#include <vector>
// Start at mid = n/2, then move mid-1, mid+1, mid-2, mid+2, … until the vector is fully covered.
int main() {
std::vector<int> vec = {0,1,2,3,4,5,6,7};
int n = vec.size();
int mid = n / 2; // middle index for even-sized vector
int left = mid - 1; // start expanding left
int right = mid; // start expanding right
// Iterate outward from the middle
while (left >= 0 || right < n) {
if (right < n) {
std::cout << vec[right] << " ";
right++;
}
if (left >= 0) {
std::cout << vec[left] << " ";
left--;
}
}
}
/*
run:
4 3 5 2 6 1 7 0
*/