#include <algorithm>
#include <iostream>
template <typename T>
std::vector<std::size_t> compute_ordered_indices(const std::vector<T>& v)
{
std::vector<std::size_t> indices(v.size());
std::iota(indices.begin(), indices.end(), 0u);
std::sort(indices.begin(), indices.end(), [&](int lhs, int rhs) {
return v[lhs] < v[rhs];
});
return indices;
}
int main() {
std::vector<int> arr = {3, 2, 6, 4};
auto indices = compute_ordered_indices(arr);
for (auto index : indices) {
std::cout << (1 + index) << " ";
}
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0ZDo6dmVjdG9yPHN0ZDo6c2l6ZV90PiBjb21wdXRlX29yZGVyZWRfaW5kaWNlcyhjb25zdCBzdGQ6OnZlY3RvcjxUPiYgdikKewogICAgc3RkOjp2ZWN0b3I8c3RkOjpzaXplX3Q+IGluZGljZXModi5zaXplKCkpOwogICAgc3RkOjppb3RhKGluZGljZXMuYmVnaW4oKSwgaW5kaWNlcy5lbmQoKSwgMHUpOwogICAgc3RkOjpzb3J0KGluZGljZXMuYmVnaW4oKSwgaW5kaWNlcy5lbmQoKSwgWyZdKGludCBsaHMsIGludCByaHMpIHsKICAgICAgICByZXR1cm4gdltsaHNdIDwgdltyaHNdOwogICAgfSk7CiAgICByZXR1cm4gaW5kaWNlczsKfQoKaW50IG1haW4oKSB7CglzdGQ6OnZlY3RvcjxpbnQ+IGFyciA9IHszLCAyLCA2LCA0fTsKCQoJYXV0byBpbmRpY2VzID0gY29tcHV0ZV9vcmRlcmVkX2luZGljZXMoYXJyKTsKCWZvciAoYXV0byBpbmRleCA6IGluZGljZXMpIHsKCQlzdGQ6OmNvdXQgPDwgKDEgKyBpbmRleCkgPDwgIiAiOwoJfQp9