/in/foo.cc: In function 'void addedge(int, int, int)':
/in/foo.cc:16:50: 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){from,to,flow,G[to].size()});
~~~~~~~~~~^~
/in/foo.cc:17: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){to,from,0,G[from].size()-1});
~~~~~~~~~~~~~~^~
/in/foo.cc: In function 'void bfs(int, int)':
/in/foo.cc:26:16: 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:37:22: 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:57:22: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
while(f=dfs(s,t,inf))flow+=f;
^
/in/foo.cc: In function 'int main()':
/in/foo.cc:88:12: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
int mid=l+r>>1;
~^~