#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
class Noisy
{
public:
Noisy(const int & id): m_id(id)
{
}
Noisy(const Noisy & obj)
{
m_id = obj.m_id;
}
virtual ~Noisy()
{
}
bool operator<(const Noisy & obj) const
{
return m_id < obj.m_id;
}
friend ostream & operator <<(ostream & os, const Noisy & obj)
{
return os << "Noisy " << obj.m_id;
}
private:
int m_id;
};
int main() {
vector<Noisy> tab;
for(size_t i = 0; i < 10; ++i){
tab.emplace_back(i);
}
for(auto el: tab) cout << el << " "; cout << endl;
random_shuffle(begin(tab), end(tab));
for(auto el: tab) cout << el << " "; cout << endl;
sort(begin(tab), end(tab));
for(auto el: tab) cout << el << " "; cout << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBOb2lzeQp7CnB1YmxpYzoKICAgIE5vaXN5KGNvbnN0IGludCAmIGlkKTogbV9pZChpZCkKICAgIHsKICAgIH0KIAogICAgTm9pc3koY29uc3QgTm9pc3kgJiBvYmopCiAgICB7CiAgICAgICAgbV9pZCA9IG9iai5tX2lkOwogICAgfQogCiAgICB2aXJ0dWFsIH5Ob2lzeSgpCiAgICB7CiAgICB9CiAKICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IE5vaXN5ICYgb2JqKSBjb25zdAogICAgewogICAgICAgIHJldHVybiBtX2lkIDwgb2JqLm1faWQ7CiAgICB9CiAKICAgIGZyaWVuZCBvc3RyZWFtICYgb3BlcmF0b3IgPDwob3N0cmVhbSAmIG9zLCBjb25zdCBOb2lzeSAmIG9iaikKICAgIHsKICAgICAgICByZXR1cm4gb3MgPDwgIk5vaXN5ICIgPDwgb2JqLm1faWQ7CiAgICB9CiAKcHJpdmF0ZToKICAgIGludCBtX2lkOwp9OwoKaW50IG1haW4oKSB7Cgl2ZWN0b3I8Tm9pc3k+IHRhYjsKCWZvcihzaXplX3QgaSA9IDA7IGkgPCAxMDsgKytpKXsKCQl0YWIuZW1wbGFjZV9iYWNrKGkpOwoJfQoJZm9yKGF1dG8gZWw6IHRhYikgY291dCA8PCBlbCA8PCAiICI7IGNvdXQgPDwgZW5kbDsKCXJhbmRvbV9zaHVmZmxlKGJlZ2luKHRhYiksIGVuZCh0YWIpKTsKCWZvcihhdXRvIGVsOiB0YWIpIGNvdXQgPDwgZWwgPDwgIiAiOyBjb3V0IDw8IGVuZGw7Cglzb3J0KGJlZ2luKHRhYiksIGVuZCh0YWIpKTsKCWZvcihhdXRvIGVsOiB0YWIpIGNvdXQgPDwgZWwgPDwgIiAiOyBjb3V0IDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==