#include <iostream>
#include <iomanip>
#include <set>
#include <functional>
using namespace std;
int main(int argc, const char * argv[])
{
int a[10] = { 8,2,4,9,1,3,7,5,6,0 };
set<int*,function<bool(int*,int*)>> s([](int*a,int*b){ return *a < *b; });
for(int i = 0; i < 10; ++i)
s.insert(&a[i]);
for(auto p: s) cout << *p << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCmludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICogYXJndltdKQp7CiAgICBpbnQgYVsxMF0gPSB7IDgsMiw0LDksMSwzLDcsNSw2LDAgfTsKCiAgICBzZXQ8aW50KixmdW5jdGlvbjxib29sKGludCosaW50Kik+PiBzKFtdKGludCphLGludCpiKXsgcmV0dXJuICphIDwgKmI7IH0pOwogICAgZm9yKGludCBpID0gMDsgaSA8IDEwOyArK2kpCiAgICAgICAgcy5pbnNlcnQoJmFbaV0pOwogICAgZm9yKGF1dG8gcDogcykgY291dCA8PCAqcCA8PCBlbmRsOwoKfQo=