/in/foo.cc: In function 'void add_edge(int, int, int)':
/in/foo.cc:10:49: 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:11:54: 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 bfs(int, int)':
/in/foo.cc:22:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < G[v].size(); i++) {
~~^~~~~~~~~~~~~
/in/foo.cc: In function 'int dfs(int, int, int)':
/in/foo.cc:38:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < G[v].size() && add < f; i++) {
~~^~~~~~~~~~~~~