#include <initializer_list>
struct Edge
{
Edge(int out, int in) { /* ... */ }
};
struct Graph
{
Graph(std::initializer_list<Edge> list) { /* ... */ }
};
int main()
{
Graph g1 = { {1,2}, {3,4}, {5,1}, {5,3} };
Graph g2 = { Edge(1,2), Edge(3,4), Edge(5,1), Edge(5,3) };
Graph g3 = { Edge{1,2}, Edge{3,4}, Edge{5,1}, Edge{5,3} };
}
ICAgICNpbmNsdWRlIDxpbml0aWFsaXplcl9saXN0PgoKICAgIHN0cnVjdCBFZGdlCiAgICB7CiAgICAgICAgRWRnZShpbnQgb3V0LCBpbnQgaW4pIHsgLyogLi4uICovIH0KICAgIH07CgogICAgc3RydWN0IEdyYXBoCiAgICB7CiAgICAgICAgR3JhcGgoc3RkOjppbml0aWFsaXplcl9saXN0PEVkZ2U+IGxpc3QpIHsgLyogLi4uICovIH0KICAgIH07CgogICAgaW50IG1haW4oKQogICAgewogICAgICAgIEdyYXBoIGcxID0geyB7MSwyfSwgezMsNH0sIHs1LDF9LCB7NSwzfSB9OwogICAgICAgIEdyYXBoIGcyID0geyBFZGdlKDEsMiksIEVkZ2UoMyw0KSwgRWRnZSg1LDEpLCBFZGdlKDUsMykgfTsKICAgICAgICBHcmFwaCBnMyA9IHsgRWRnZXsxLDJ9LCBFZGdlezMsNH0sIEVkZ2V7NSwxfSwgRWRnZXs1LDN9IH07CiAgICB9Cg==