I'm trying to solve 720B — Cactusophobia from Russian Code Cup 2016 Final. I read the editorial and understood the flow solution for this problem. So I find some implementation for this problem. I read dreamoon's solution (20732895), which used Dinic flow finding algorithm and run in 373ms. But, since Dinic algorithm run in *O*(*n*^{2}*m*), and the graph can have up to 30000 vertices and edges, how could this run in time? Can someone enlighten me about this? Thanks in advance.

Sum of capacity of all edges is

O(n). You can imagine an edge with capacity x as x edges with capacity 1. It'll be a unit graph, hence Dinic's algorithm will run in .Thanks for the clear explanation.

Dinic is min(fE, V^2E), and f <= V, so it is O(VE). (As above comment mentioned, tighter bounds are possible)