#include <string>
#include <vector>
#include <iostream>
void reverseSubarray(std::vector<int> &v, int start, int end) {
if (end > v.size()) {
std::wcout << L"End index out of range";
return;
}
int mid_sub = (end - start + 1) / 2;
for (int i = 0; i < mid_sub; i++) {
int tmp = v[start + i];
v[start + i] = v[end - i];
v[end - i] = tmp;
}
}
int main() {
std::vector<int> v = {1, 4, 8, 0, 7, 3, 9, 5, 6, 2};
int start = 2, end = 6;
reverseSubarray(v, start, end);
for (auto const &n: v) {
std::cout << n << " ";
}
}
/*
run:
1 4 9 3 7 0 8 5 6 2
*/