#include <initializer_list>
#include <iostream>
#include <vector>
template <class T>
class Graph {
private:
std::vector < std::vector<T> > data;
struct EdgeConstructor
{
T source;
std::vector<T> destination;
};
public:
class Edge {
private:
T source;
T destination;
};
Graph(std::initializer_list<EdgeConstructor>) {}
};
enum Country {Poland, Ukraine, Germany, USA};
typedef Graph<Country> GC;
int main() {
GC gc{
{ Poland, {Ukraine, Germany} },
{ Germany, {Poland, Ukraine, USA} },
{ USA, {Poland, Ukraine, USA} }
};
return 0;
}
I2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KCnRlbXBsYXRlIDxjbGFzcyBUPgpjbGFzcyBHcmFwaCB7CiAgICBwcml2YXRlOgogICAgICAgIHN0ZDo6dmVjdG9yIDwgc3RkOjp2ZWN0b3I8VD4gPiBkYXRhOwogICAgICAgIHN0cnVjdCBFZGdlQ29uc3RydWN0b3IKICAgICAgICB7CiAgICAgICAgCVQgc291cmNlOwogICAgICAgIAlzdGQ6OnZlY3RvcjxUPiBkZXN0aW5hdGlvbjsKICAgICAgICB9OwogICAgcHVibGljOgogICAgICAgIGNsYXNzIEVkZ2UgewogICAgICAgICAgICBwcml2YXRlOgogICAgICAgICAgICAgICAgVCBzb3VyY2U7CiAgICAgICAgICAgICAgICBUIGRlc3RpbmF0aW9uOwogICAgICAgIH07CiAgICAgICAgR3JhcGgoc3RkOjppbml0aWFsaXplcl9saXN0PEVkZ2VDb25zdHJ1Y3Rvcj4pIHt9Cn07CgplbnVtIENvdW50cnkge1BvbGFuZCwgVWtyYWluZSwgR2VybWFueSwgVVNBfTsKdHlwZWRlZiBHcmFwaDxDb3VudHJ5PiBHQzsKCmludCBtYWluKCkgewoJR0MgZ2N7CgkgICAgeyBQb2xhbmQsIHtVa3JhaW5lLCBHZXJtYW55fSB9LAoJICAgIHsgR2VybWFueSwge1BvbGFuZCwgVWtyYWluZSwgVVNBfSB9LAoJICAgIHsgVVNBLCB7UG9sYW5kLCBVa3JhaW5lLCBVU0F9IH0KCX07CglyZXR1cm4gMDsKfQ==