/in/foo.cc: In function 'void addedge(int, int, int)':
/in/foo.cc:33:48: warning: narrowing conversion of 'G[to].std::vector<_Tp, _Alloc>::size<edges, std::allocator<edges> >()' from 'std::vector<edges>::size_type {aka long unsigned int}' to 'int' inside { } [-Wnarrowing]
G[from].push_back((edges){to,cap,G[to].size()});
~~~~~~~~~~^~
/in/foo.cc:34:50: warning: narrowing conversion of '(G[from].std::vector<_Tp, _Alloc>::size<edges, std::allocator<edges> >() - 1ul)' from 'std::vector<edges>::size_type {aka long unsigned int}' to 'int' inside { } [-Wnarrowing]
G[to].push_back((edges){from,0,G[from].size()-1});
~~~~~~~~~~~~~~^~
/in/foo.cc: In function 'void bfs(int)':
/in/foo.cc:43:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=0;i<G[u].size();++i){
~^~~~~~~~~~~~
/in/foo.cc: In function 'int dfs(int, int, int)':
/in/foo.cc:54:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int& i=iter[u];i<G[u].size();++i){
~^~~~~~~~~~~~
/in/foo.cc: In function 'int max_flow(int, int)':
/in/foo.cc:74:28: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
while(f=dfs(s,t,INF))flow+=f;
^