#include <iostream>
#include <algorithm>
#include <tuple>
int main(){
int a[] = { 123, 456, 678, 135, 564, 55, 5610 };
int idx = 0;
std::vector< std::tuple<int,int> > vec;
std::transform( std::begin(a), std::end(a),
std::back_inserter(vec),
[&]( int v ){ return std::make_tuple( v, idx++); }
);
std::sort( vec.begin(), vec.end() );
for( auto & v : vec ){
std::cout << std::get<0>(v) << " " << std::get<1>(v) << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dHVwbGU+CgppbnQgbWFpbigpewogIGludCBhW10gPSB7IDEyMywgNDU2LCA2NzgsIDEzNSwgNTY0LCA1NSwgNTYxMCB9OwogIGludCBpZHggPSAwOwogIHN0ZDo6dmVjdG9yPCBzdGQ6OnR1cGxlPGludCxpbnQ+ID4gdmVjOwoKICBzdGQ6OnRyYW5zZm9ybSggc3RkOjpiZWdpbihhKSwgc3RkOjplbmQoYSksCiAgICAgIHN0ZDo6YmFja19pbnNlcnRlcih2ZWMpLAogICAgICBbJl0oIGludCB2ICl7IHJldHVybiBzdGQ6Om1ha2VfdHVwbGUoIHYsIGlkeCsrKTsgfQogICk7CgogIHN0ZDo6c29ydCggdmVjLmJlZ2luKCksIHZlYy5lbmQoKSApOwogIGZvciggYXV0byAmIHYgOiB2ZWMgKXsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmdldDwwPih2KSA8PCAiICIgPDwgc3RkOjpnZXQ8MT4odikgPDwgIlxuIjsKICB9CgogIHJldHVybiAwOwp9Cg==