/in/foo.cc: In function 'void add_edge(int, int, int)':
/in/foo.cc:19:44: warning: narrowing conversion of 'G[to].std::vector<_Tp, _Alloc>::size<edge, std::allocator<edge> >()' from 'std::vector<edge>::size_type {aka long unsigned int}' to 'int' inside { } [-Wnarrowing]
G[from].push_back((edge){to,cap,G[to].size()});
~~~~~~~~~~^~
/in/foo.cc:20:49: warning: narrowing conversion of '(G[from].std::vector<_Tp, _Alloc>::size<edge, std::allocator<edge> >() - 1ul)' from 'std::vector<edge>::size_type {aka long unsigned int}' to 'int' inside { } [-Wnarrowing]
G[to].push_back((edge){from,cap,G[from].size() - 1});
~~~~~~~~~~~~~~~^~~
/in/foo.cc: In function 'int dfs(int, int, int)':
/in/foo.cc:27:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < G[v].size(); i++)
~~^~~~~~~~~~~~~