#include <set>
#include <iostream>
using pair_type = std::pair<int, int>;
auto comp = [](const pair_type& a, const pair_type& b) {
return (a.first < b.first) || ((a.first == b.first) && (a.second < b.second));
};
class A{
public:
A() : edge_(comp) {}
void test();
private:
std::set<pair_type, decltype(comp)> edge_;
};
void A::test()
{
edge_.insert(std::make_pair(3, 2));
edge_.insert(std::make_pair(1, 2));
edge_.insert(std::make_pair(2, 1));
edge_.insert(std::make_pair(1, 1));
for (auto const &e : edge_)
std::cout << e.first << " - " << e.second << std::endl;
}
int main()
{
A a;
a.test();
return 0;
}
I2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgcGFpcl90eXBlID0gc3RkOjpwYWlyPGludCwgaW50PjsKCmF1dG8gY29tcCA9IFtdKGNvbnN0IHBhaXJfdHlwZSYgYSwgY29uc3QgcGFpcl90eXBlJiBiKSB7CiAgICByZXR1cm4gKGEuZmlyc3QgPCBiLmZpcnN0KSB8fCAoKGEuZmlyc3QgPT0gYi5maXJzdCkgJiYgKGEuc2Vjb25kIDwgYi5zZWNvbmQpKTsKfTsKCmNsYXNzIEF7CnB1YmxpYzoKICAgIEEoKSA6IGVkZ2VfKGNvbXApIHt9CiAgICB2b2lkIHRlc3QoKTsKcHJpdmF0ZToKICAgIHN0ZDo6c2V0PHBhaXJfdHlwZSwgZGVjbHR5cGUoY29tcCk+IGVkZ2VfOwp9OwoKdm9pZCBBOjp0ZXN0KCkKewogICAgZWRnZV8uaW5zZXJ0KHN0ZDo6bWFrZV9wYWlyKDMsIDIpKTsKICAgIGVkZ2VfLmluc2VydChzdGQ6Om1ha2VfcGFpcigxLCAyKSk7CiAgICBlZGdlXy5pbnNlcnQoc3RkOjptYWtlX3BhaXIoMiwgMSkpOwogICAgZWRnZV8uaW5zZXJ0KHN0ZDo6bWFrZV9wYWlyKDEsIDEpKTsKCiAgICBmb3IgKGF1dG8gY29uc3QgJmUgOiBlZGdlXykKICAgICAgICBzdGQ6OmNvdXQgPDwgZS5maXJzdCA8PCAiIC0gIiA8PCBlLnNlY29uZCA8PCBzdGQ6OmVuZGw7Cn0KCmludCBtYWluKCkKewogICAgQSBhOwogICAgYS50ZXN0KCk7CiAgICByZXR1cm4gMDsKfQo=