#include <unordered_set>
#include <iostream>
int main() {
auto hash = [](const std::pair<int, int>& p){ return p.first * 31 + p.second; };
std::unordered_set<std::pair<int, int>, decltype(hash)> u_edge_(8, hash);
u_edge_.emplace(1, 2);
u_edge_.emplace(3, 4);
u_edge_.emplace(5, 6);
for (auto const &p : u_edge_)
std::cout << p.first << ", " << p.second << std::endl;
return 0;
}
I2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCmludCBtYWluKCkgewogICAgYXV0byBoYXNoID0gW10oY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgcCl7IHJldHVybiBwLmZpcnN0ICogMzEgKyBwLnNlY29uZDsgfTsKICAgIHN0ZDo6dW5vcmRlcmVkX3NldDxzdGQ6OnBhaXI8aW50LCBpbnQ+LCBkZWNsdHlwZShoYXNoKT4gdV9lZGdlXyg4LCBoYXNoKTsKCiAgICB1X2VkZ2VfLmVtcGxhY2UoMSwgMik7CiAgICB1X2VkZ2VfLmVtcGxhY2UoMywgNCk7CiAgICB1X2VkZ2VfLmVtcGxhY2UoNSwgNik7CgogICAgZm9yIChhdXRvIGNvbnN0ICZwIDogdV9lZGdlXykKICAgICAgICBzdGQ6OmNvdXQgPDwgcC5maXJzdCA8PCAiLCAiIDw8IHAuc2Vjb25kIDw8IHN0ZDo6ZW5kbDsKCglyZXR1cm4gMDsKfQ==