#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
template<typename Iter>
void select_sort (Iter beg, Iter end)
{
for(Iter i = beg; i != end; ++i)
iter_swap(i, min_element(i, end));
}
int main()
{
int arr[10] = {5,3,0,-10,3,1,7,0,3,-1};
select_sort(arr, arr+10);
for(int n=0; n < 10; ++n)
std::cout << arr[n] << ' ';
std::cout << '\n';
vector<int> vec = {5,3,0,-10,3,1,7,0,3,-1};
select_sort(vec.begin(), vec.end());
for(size_t n=0; n < vec.size(); ++n)
std::cout << vec[n] << ' ';
std::cout << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8dHlwZW5hbWUgSXRlcj4Kdm9pZCBzZWxlY3Rfc29ydCAoSXRlciBiZWcsIEl0ZXIgZW5kKQp7CiAgICBmb3IoSXRlciBpID0gYmVnOyBpICE9IGVuZDsgKytpKQogICAgICAgIGl0ZXJfc3dhcChpLCBtaW5fZWxlbWVudChpLCBlbmQpKTsKfQoKaW50IG1haW4oKQp7CiAgICBpbnQgYXJyWzEwXSA9IHs1LDMsMCwtMTAsMywxLDcsMCwzLC0xfTsKICAgIHNlbGVjdF9zb3J0KGFyciwgYXJyKzEwKTsKICAgIGZvcihpbnQgbj0wOyBuIDwgMTA7ICsrbikKICAgICAgICBzdGQ6OmNvdXQgPDwgYXJyW25dIDw8ICcgJzsKICAgIHN0ZDo6Y291dCA8PCAnXG4nOwoKICAgIHZlY3RvcjxpbnQ+IHZlYyA9IHs1LDMsMCwtMTAsMywxLDcsMCwzLC0xfTsKICAgIHNlbGVjdF9zb3J0KHZlYy5iZWdpbigpLCB2ZWMuZW5kKCkpOwogICAgZm9yKHNpemVfdCBuPTA7IG4gPCB2ZWMuc2l6ZSgpOyArK24pCiAgICAgICAgc3RkOjpjb3V0IDw8IHZlY1tuXSA8PCAnICc7CiAgICBzdGQ6OmNvdXQgPDwgJ1xuJzsKfQo=